<!DOCTYPE html>
<!--[if IE 7]>
<html class="ie ie7" lang="fr-FR" prefix="og: http://ogp.me/ns#">
<![endif]-->
<!--[if IE 8]>
<html class="ie ie8" lang="fr-FR" prefix="og: http://ogp.me/ns#">
<![endif]-->
<!--[if !(IE 7) | !(IE 8)  ]><!-->
<html prefix="og: http://ogp.me/ns#" lang="fr-FR"><!--<![endif]--><head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width">
<title>How to replace the "Action" helper in ZF 2 (and make great widgetized content) | Un blog sur tout et rien...</title>
<link rel="profile" href="http://gmpg.org/xfn/11">
<link rel="pingback" href="http://www.michaelgallego.fr/blog/xmlrpc.php">
<!--[if lt IE 9]>
<script src="http://www.michaelgallego.fr/blog/wp-content/themes/twentytwelve/js/html5.js" type="text/javascript"></script>
<![endif]-->

<!-- This site is optimized with the Yoast WordPress SEO plugin v1.4.6 - http://yoast.com/wordpress/seo/ -->
<link rel="canonical" href="http://www.michaelgallego.fr/blog/2012/10/06/how-to-replace-the-action-helper-in-zf-2-and-make-great-widgetized-content/">
<meta name="twitter:card" content="summary">
<meta name="twitter:site" content="@mic_gallego">
<meta name="twitter:description" content="Pour la version française de cet article, c’est ici ! For the Russian version, click here&nbsp;(thanks Oleg Lobach) !&nbsp; I had a great discussion yesterday with Robert Basic&nbsp;about the missing “Action” view helper in Zend Framework 2. As many people ask about it, I decided to blog about it. I was asking him about it [...]">
<meta property="og:locale" content="fr_FR">
<meta property="og:title" content="How to replace the &quot;Action&quot; helper in ZF 2 (and make great widgetized content) - Un blog sur tout et rien...">
<meta property="og:url" content="http://www.michaelgallego.fr/blog/2012/10/06/how-to-replace-the-action-helper-in-zf-2-and-make-great-widgetized-content/">
<meta property="og:site_name" content="Un blog sur tout et rien...">
<meta property="og:type" content="article">
<!-- / Yoast WordPress SEO plugin. -->

<link rel="alternate" type="application/rss+xml" title="Un blog sur tout et rien... » Flux" href="http://www.michaelgallego.fr/blog/feed/">
<link rel="alternate" type="application/rss+xml" title="Un blog sur tout et rien... » Flux des commentaires" href="http://www.michaelgallego.fr/blog/comments/feed/">
<link rel="alternate" type="application/rss+xml" title="Un blog sur tout et rien... » How to replace the “Action” helper in ZF 2 (and make great widgetized content) Flux des commentaires" href="http://www.michaelgallego.fr/blog/2012/10/06/how-to-replace-the-action-helper-in-zf-2-and-make-great-widgetized-content/feed/">
<link rel="stylesheet" id="crayon-css" href="replace_action_plugin_files/crayon.css" type="text/css" media="all">
<link rel="stylesheet" id="crayon-theme-classic-css" href="replace_action_plugin_files/classic.css" type="text/css" media="all">
<link rel="stylesheet" id="crayon-font-monaco-css" href="replace_action_plugin_files/monaco.css" type="text/css" media="all">
<link rel="stylesheet" id="wp-syntax-css-css" href="replace_action_plugin_files/wp-syntax.css" type="text/css" media="all">
<link rel="stylesheet" id="jetpack-widgets-css" href="replace_action_plugin_files/widgets.css" type="text/css" media="all">
<link rel="stylesheet" id="twentytwelve-fonts-css" href="replace_action_plugin_files/css.css" type="text/css" media="all">
<link rel="stylesheet" id="twentytwelve-style-css" href="replace_action_plugin_files/style.css" type="text/css" media="all">
<!--[if lt IE 9]>
<link rel='stylesheet' id='twentytwelve-ie-css'  href='http://www.michaelgallego.fr/blog/wp-content/themes/twentytwelve/css/ie.css?ver=20121010' type='text/css' media='all' />
<![endif]-->
<script type="text/javascript" async="" src="replace_action_plugin_files/quant.js"></script><script type="text/javascript" src="replace_action_plugin_files/jquery_008.js"></script>
<script type="text/javascript">
/* <![CDATA[ */
var quicktagsL10n = {"wordLookup":"Saisissez un mot \u00e0 chercher :","dictionaryLookup":"Recherche dans le dictionnaire","lookup":"dictionnaire","closeAllOpenTags":"Fermer toutes les balises ouvertes","closeTags":"fermer les balises","enterURL":"Saisissez l\u2019adresse","enterImageURL":"Saisissez l\u2019adresse de l\u2019image","enterImageDescription":"Saisissez une description pour l\u2019image","fullscreen":"plein \u00e9cran","toggleFullscreen":"Mode plein \u00e9cran","textdirection":"direction du texte","toggleTextdirection":"Inverser la direction de l\u2019\u00e9diteur de texte"};
/* ]]> */
</script>
<script type="text/javascript" src="replace_action_plugin_files/quicktags.js"></script>
<script type="text/javascript">
/* <![CDATA[ */
var CrayonSyntaxSettings = {"version":"2.2.0","is_admin":"0","ajaxurl":"http:\/\/www.michaelgallego.fr\/blog\/wp-admin\/admin-ajax.php","prefix":"crayon-","setting":"crayon-setting","selected":"crayon-setting-selected","changed":"crayon-setting-changed","special":"crayon-setting-special","orig_value":"data-orig-value","debug":""};
var CrayonSyntaxStrings = {"copy":"Faites %s pour copier, %s pour coller","minimize":"Click To Expand Code"};
var CrayonTagEditorSettings = {"home_url":"http:\/\/www.michaelgallego.fr\/blog","css":"crayon-te","css_selected":"crayon-selected","code_css":"#crayon-code","url_css":"#crayon-url","url_info_css":"#crayon-te-url-info","lang_css":"#crayon-lang","title_css":"#crayon-title","mark_css":"#crayon-mark","range_css":"#crayon-range","inline_css":"crayon-inline","inline_hide_css":"crayon-hide-inline","inline_hide_only_css":"crayon-hide-inline-only","hl_css":"#crayon-highlight","switch_html":"#content-html","switch_tmce":"#content-tmce","tinymce_button":"a.mce_crayon_tinymce","submit_css":"#crayon-te-ok","cancel_css":"#crayon-te-cancel","content_css":"#crayon-te-content","dialog_title_css":"#crayon-te-title","submit_wrapper_css":"#crayon-te-submit-wrapper","data_value":"data-value","attr_sep":":","css_sep":"_","fallback_lang":"default","dialog_title_add":"Ajouter un code Crayon","dialog_title_edit":"Modifier le code Crayon","submit_add":"Ajouter","submit_edit":"Enregistrer","bar":"#crayon-te-bar","bar_content":"#crayon-te-bar-content","extensions":{"scpt":"applescript","applescript":"applescript","swf":"as","fla":"as","cs":"c#","h":"c++","hh":"c++","hpp":"c++","hxx":"c++","h++":"c++","cc":"c++","cpp":"c++","cxx":"c++","c++":"c++","pas":"delphi","java":"java","class":"java","jar":"java","mv":"miva","mvc":"miva","mvt":"miva","m":"objc","mm":"objc","pl":"perl","py":"python","pyw":"python","pyc":"python","pyo":"python","pyd":"python","rb":"ruby","rbx":"ruby","rhtml":"ruby","vbs":"vb"}};
var CrayonSyntaxSettings = {"version":"2.2.0","is_admin":"0","ajaxurl":"http:\/\/www.michaelgallego.fr\/blog\/wp-admin\/admin-ajax.php","prefix":"crayon-","setting":"crayon-setting","selected":"crayon-setting-selected","changed":"crayon-setting-changed","special":"crayon-setting-special","orig_value":"data-orig-value","debug":""};
var CrayonSyntaxStrings = {"copy":"Faites %s pour copier, %s pour coller","minimize":"Click To Expand Code"};
/* ]]> */
</script>
<script type="text/javascript" src="replace_action_plugin_files/crayon.js"></script>
<script type="text/javascript" src="replace_action_plugin_files/comment-reply.js"></script>
<link rel="EditURI" type="application/rsd+xml" title="RSD" href="http://www.michaelgallego.fr/blog/xmlrpc.php?rsd">
<link rel="wlwmanifest" type="application/wlwmanifest+xml" href="http://www.michaelgallego.fr/blog/wp-includes/wlwmanifest.xml"> 
<meta name="generator" content="WordPress 3.5.1">
<link rel="shortlink" href="http://wp.me/p2NamP-3B">
<style type="text/css" id="custom-background-css">
body.custom-background { background-color: #e6e6e6; }
</style>
<link rel="stylesheet" type="text/css" id="gravatar-card-css" href="replace_action_plugin_files/hovercard.css"><link rel="stylesheet" type="text/css" id="gravatar-card-services-css" href="replace_action_plugin_files/services.css"><link href="replace_action_plugin_files/window.css" rel="stylesheet"></head>

<body class="single single-post postid-223 single-format-standard custom-background custom-font-enabled single-author">
<div id="page" class="hfeed site">
	<header id="masthead" class="site-header" role="banner">
		<hgroup>
			<h1 class="site-title"><a href="http://www.michaelgallego.fr/blog/" title="Un blog sur tout et rien…" rel="home">Un blog sur tout et rien…</a></h1>
			<h2 class="site-description"></h2>
		</hgroup>

		<nav id="site-navigation" class="main-navigation" role="navigation">
			<h3 class="menu-toggle">Menu</h3>
			<a class="assistive-text" href="#content" title="Aller au contenu principal">Aller au contenu principal</a>
			<div class="nav-menu"><ul><li><a href="http://www.michaelgallego.fr/blog/" title="Accueil">Accueil</a></li></ul></div>
		</nav><!-- #site-navigation -->

			</header><!-- #masthead -->

	<div id="main" class="wrapper">
	<div id="primary" class="site-content">
		<div id="content" role="main">

			
				
	<article id="post-223" class="post-223 post type-post status-publish format-standard hentry category-programmation tag-action tag-action-helper tag-widget tag-widgetized tag-zend tag-zend-framework-2 tag-zf2">
				<header class="entry-header">
									<h1 class="entry-title">How to replace the “Action” helper in ZF 2 (and make great widgetized content)</h1>
										<div class="comments-link">
					<a href="http://www.michaelgallego.fr/blog/2012/10/06/how-to-replace-the-action-helper-in-zf-2-and-make-great-widgetized-content/#comments" title="Commentaire sur How to replace the “Action” helper in ZF 2 (and make great widgetized content)">14 réponses</a>				</div><!-- .comments-link -->
					</header><!-- .entry-header -->

				<div class="entry-content">
			<p><em>Pour la version française de cet article, <a href="http://www.michaelgallego.fr/blog/?p=225">c’est ici</a> !<br>
For the Russian version, <a href="http://zftutorials.ru/blog/how-to-replace-action-helper-in-zf2.html">click here</a>&nbsp;(thanks Oleg Lobach) !&nbsp;</em></p>
<p>I had a great discussion yesterday with <a title="Robert Basic's blog" href="http://robertbasic.com/">Robert Basic</a>&nbsp;about
 the missing “Action” view helper in Zend Framework 2. As many people 
ask about it, I decided to blog about it. I was asking him about it 
because ZfcTwig (the official ZF 2 module to <a title="Twig" href="http://twig.sensiolabs.org/">Twig</a>,
 an awesome template engine by Fabien Potencier, try it out, it makes 
your views sexy) has a built-in “Action” helper, but I had the feeling 
something was wrong about that.</p>
<h2>How it worked in ZF 1</h2>
<p>Back in ZF 1, the action helper was mainly used for “widgetized” 
content, and allowed to start a new dispatch process to another action 
within the view. It worked like this :</p><!-- Crayon Syntax Highlighter v2.2.0 -->

		<div id="crayon-5165292e22937" class="crayon-syntax crayon-theme-classic crayon-font-monaco crayon-os-pc print-yes" data-settings=" minimize scroll-mouseover" style="margin-top: 12px; margin-bottom: 12px; float: none; clear: both; font-size: 12px ! important; line-height: 15px ! important; height: auto;">
		
			<div class="crayon-toolbar" data-settings=" mouseover overlay hide delay" style="font-size: 12px ! important; height: 18px ! important; line-height: 18px ! important; margin-top: -19px; display: none; z-index: 4;"><span class="crayon-title"></span>
			<div class="crayon-tools" style="font-size: 12px !important;height: 18px !important; line-height: 18px !important;"><span class="crayon-mixed-highlight" title="Contient des langages mélangés"></span><div class="crayon-button crayon-nums-button crayon-pressed" title="Afficher/cacher numéros de lignes"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-plain-button" title="Basculer vers code brut"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-wrap-button" title="Toggle Line Wrap"><div class="crayon-button-icon"></div></div><div style="display: none;" class="crayon-button crayon-expand-button" title="Expand Code"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-copy-button" title="Expand Code"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-popup-button" title="Ouvrir le code dans une nouvelle fenêtre"><div class="crayon-button-icon"></div></div><span class="crayon-language">PHP</span></div></div>
			<div class="crayon-info" style="min-height: 16.8px !important; line-height: 16.8px !important;"></div>
			<div class="crayon-plain-wrap"><textarea wrap="off" class="crayon-plain print-no" data-settings="dblclick" readonly="readonly" style="-moz-tab-size: 4; font-size: 12px ! important; line-height: 15px ! important; z-index: 0; opacity: 0; overflow: hidden;">&lt;?php echo $this-&gt;action('list', 'comment', null, array('count' =&gt; 10)); ?&gt;</textarea></div>
			<div class="crayon-main" style="position: relative; z-index: 1; overflow: hidden;">
				<table style="" class="crayon-table">
					<tbody><tr class="crayon-row">
				<td class="crayon-nums " data-settings="show">
					<div class="crayon-nums-content" style="font-size: 12px !important; line-height: 15px !important;"><div class="crayon-num" data-line="crayon-5165292e22937-1">1</div></div>
				</td>
						<td class="crayon-code"><div class="crayon-pre" style="font-size: 12px !important; line-height: 15px !important;"><div class="crayon-line" id="crayon-5165292e22937-1"><span class="ta">&lt;?php</span><span class="h"> </span><span class="k ">echo</span><span class="h"> </span><span class="v">$this</span><span class="o">-&gt;</span><span class="e">action</span><span class="sy">(</span><span class="s">'list'</span><span class="sy">,</span><span class="h"> </span><span class="s">'comment'</span><span class="sy">,</span><span class="h"> </span><span class="t">null</span><span class="sy">,</span><span class="h"> </span><span class="t">array</span><span class="sy">(</span><span class="s">'count'</span><span class="h"> </span><span class="o">=</span><span class="o">&gt;</span><span class="h"> </span><span class="cn">10</span><span class="sy">)</span><span class="sy">)</span><span class="sy">;</span><span class="h"> </span><span class="ta">?&gt;</span></div></div></td>
					</tr>
				</tbody></table>
			</div>
		</div>
<!-- [Format Time: 0.0019 seconds] -->
<p>This code just calls the “list” action of the “CommentController” 
with some parameters, and returns the HTML code from it. Nice and easy, 
isn’t it ?</p>
<p>However, this suffers from <a title="Why The Zend Framework Action Stack Is Evil" href="http://www.rmauger.co.uk/2009/03/why-the-zend-framework-actionstack-is-evil/">a lot of flaws</a>.
 The first of them is performance. Because this begins a new MVC process
 is began (dispatch, routing…). Of course, all of the hooks you may have
 added through events (ACL…) are executed again, too. This may lead to 
side-effects that are very hard to debug, and the performance can be 
really bad, too.</p>
<p>The second reason is that it introduces a dependency from your view 
to the controler. Basically, the following schema is done when using 
“action” view helper :</p>
<p>controler -&gt; view -&gt; controler -&gt; view.</p>
<p>Thirdly, when dealing with widgetized content, you need to have 
action (and hence, routes) for every action you may call in your 
“action” view helper. This means that you have to creata a lot of 
meaningless actions (because they are never called alone) and a lot of 
useless routes.</p>
<p>In a nutshell,&nbsp;<span style="color: #ff0000;"><strong>this is bad</strong></span><span style="color: #000000;">&nbsp;(the rumor said that Matthew Weier O’Phinney really considers it as evil <img src="replace_action_plugin_files/icon_wink.gif" alt=";-)" class="wp-smiley"> ). As a consequence of this, the Action view helper was completely removed from ZF 2.</span></p>
<h2>The solution</h2>
<p>Well, of course, there are solutions (once again, thanks to Robert Basic for giving me one of them !).</p>
<h3>The Forward solution</h3>
<p>The first solution is using the Forward controller plugin. The 
Forward plugin allows you, inside an action, to dispatch to another 
action, but without all the overhead (no routing is done). For instance,
 let’s say that, inside a specific page, you want to display an invoice.
 Because the invoice could be rendered alone, and that it makes sense to
 delegate this task to another controller, you could do this :</p><!-- Crayon Syntax Highlighter v2.2.0 -->

		<div id="crayon-5165292e22a27" class="crayon-syntax crayon-theme-classic crayon-font-monaco crayon-os-pc print-yes" data-settings=" minimize scroll-mouseover" style="margin-top: 12px; margin-bottom: 12px; float: none; clear: both; font-size: 12px ! important; line-height: 15px ! important; height: auto;">
		
			<div class="crayon-toolbar" data-settings=" mouseover overlay hide delay" style="font-size: 12px ! important; height: 18px ! important; line-height: 18px ! important; margin-top: -19px; display: none; position: absolute; z-index: 2;"><span class="crayon-title"></span>
			<div class="crayon-tools" style="font-size: 12px !important;height: 18px !important; line-height: 18px !important;"><div class="crayon-button crayon-nums-button crayon-pressed" title="Afficher/cacher numéros de lignes"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-plain-button" title="Basculer vers code brut"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-wrap-button" title="Toggle Line Wrap"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-expand-button" title="Expand Code"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-copy-button" title="Expand Code"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-popup-button" title="Ouvrir le code dans une nouvelle fenêtre"><div class="crayon-button-icon"></div></div></div></div>
			<div class="crayon-info" style="min-height: 16.8px !important; line-height: 16.8px !important;"></div>
			<div class="crayon-plain-wrap"><textarea wrap="off" class="crayon-plain print-no" data-settings="dblclick" readonly="readonly" style="-moz-tab-size: 4; font-size: 12px ! important; line-height: 15px ! important; z-index: 0; opacity: 0; overflow: hidden;">public function invoiceDetailsAction()
{
    $mainViewModel = new ViewModel();

    [...] // Do work, set variables for this page...

    // And get the widget for the invoice
    $invoiceId         = $this-&gt;params('id');
    $invoiceWidget = $this-&gt;forward()-&gt;dispatch('Application\Controller\Invoice', array(
        'action' =&gt; 'display',
        'id'     =&gt; $invoiceId
    ));

    return $mainViewModel-&gt;addChild($invoiceWidget, 'invoiceWidget');
}</textarea></div>
			<div class="crayon-main" style="position: relative; z-index: 1; overflow: hidden;">
				<table style="" class="crayon-table">
					<tbody><tr class="crayon-row">
				<td class="crayon-nums " data-settings="show">
					<div class="crayon-nums-content" style="font-size: 12px !important; line-height: 15px !important;"><div class="crayon-num" data-line="crayon-5165292e22a27-1">1</div><div class="crayon-num crayon-striped-num" data-line="crayon-5165292e22a27-2">2</div><div class="crayon-num" data-line="crayon-5165292e22a27-3">3</div><div class="crayon-num crayon-striped-num" data-line="crayon-5165292e22a27-4">4</div><div class="crayon-num" data-line="crayon-5165292e22a27-5">5</div><div class="crayon-num crayon-striped-num" data-line="crayon-5165292e22a27-6">6</div><div class="crayon-num" data-line="crayon-5165292e22a27-7">7</div><div class="crayon-num crayon-striped-num" data-line="crayon-5165292e22a27-8">8</div><div class="crayon-num" data-line="crayon-5165292e22a27-9">9</div><div class="crayon-num crayon-striped-num" data-line="crayon-5165292e22a27-10">10</div><div class="crayon-num" data-line="crayon-5165292e22a27-11">11</div><div class="crayon-num crayon-striped-num" data-line="crayon-5165292e22a27-12">12</div><div class="crayon-num" data-line="crayon-5165292e22a27-13">13</div><div class="crayon-num crayon-striped-num" data-line="crayon-5165292e22a27-14">14</div><div class="crayon-num" data-line="crayon-5165292e22a27-15">15</div></div>
				</td>
						<td class="crayon-code"><div class="crayon-pre" style="font-size: 12px !important; line-height: 15px !important;"><div class="crayon-line" id="crayon-5165292e22a27-1"><span class="m">public</span><span class="h"> </span><span class="t">function</span><span class="h"> </span><span class="e">invoiceDetailsAction</span><span class="sy">(</span><span class="sy">)</span></div><div class="crayon-line crayon-striped-line" id="crayon-5165292e22a27-2"><span class="sy">{</span></div><div class="crayon-line" id="crayon-5165292e22a27-3"><span class="h">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="sy">$</span><span class="v">mainViewModel</span><span class="h"> </span><span class="o">=</span><span class="h"> </span><span class="r">new</span><span class="h"> </span><span class="e">ViewModel</span><span class="sy">(</span><span class="sy">)</span><span class="sy">;</span></div><div class="crayon-line crayon-striped-line" id="crayon-5165292e22a27-4">&nbsp;</div><div class="crayon-line" id="crayon-5165292e22a27-5"><span class="h">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="sy">[</span><span class="sy">.</span><span class="sy">.</span><span class="sy">.</span><span class="sy">]</span><span class="h"> </span><span class="c">// Do work, set variables for this page...</span></div><div class="crayon-line crayon-striped-line" id="crayon-5165292e22a27-6">&nbsp;</div><div class="crayon-line" id="crayon-5165292e22a27-7"><span class="h">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="c">// And get the widget for the invoice</span></div><div class="crayon-line crayon-striped-line" id="crayon-5165292e22a27-8"><span class="h">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="sy">$</span><span class="v">invoiceId</span><span class="h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span class="o">=</span><span class="h"> </span><span class="sy">$</span><span class="r">this</span><span class="o">-&gt;</span><span class="e">params</span><span class="sy">(</span><span class="s">'id'</span><span class="sy">)</span><span class="sy">;</span></div><div class="crayon-line" id="crayon-5165292e22a27-9"><span class="h">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="sy">$</span><span class="v">invoiceWidget</span><span class="h"> </span><span class="o">=</span><span class="h"> </span><span class="sy">$</span><span class="r">this</span><span class="o">-&gt;</span><span class="e">forward</span><span class="sy">(</span><span class="sy">)</span><span class="o">-&gt;</span><span class="e">dispatch</span><span class="sy">(</span><span class="s">'Application\Controller\Invoice'</span><span class="sy">,</span><span class="h"> </span><span class="t">array</span><span class="sy">(</span></div><div class="crayon-line crayon-striped-line" id="crayon-5165292e22a27-10"><span class="h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="s">'action'</span><span class="h"> </span><span class="o">=</span><span class="o">&gt;</span><span class="h"> </span><span class="s">'display'</span><span class="sy">,</span></div><div class="crayon-line" id="crayon-5165292e22a27-11"><span class="h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="s">'id'</span><span class="h">&nbsp;&nbsp;&nbsp;&nbsp; </span><span class="o">=</span><span class="o">&gt;</span><span class="h"> </span><span class="sy">$</span><span class="i">invoiceId</span></div><div class="crayon-line crayon-striped-line" id="crayon-5165292e22a27-12"><span class="h">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="sy">)</span><span class="sy">)</span><span class="sy">;</span></div><div class="crayon-line" id="crayon-5165292e22a27-13">&nbsp;</div><div class="crayon-line crayon-striped-line" id="crayon-5165292e22a27-14"><span class="h">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="st">return</span><span class="h"> </span><span class="sy">$</span><span class="i">mainViewModel</span><span class="o">-&gt;</span><span class="e">addChild</span><span class="sy">(</span><span class="sy">$</span><span class="i">invoiceWidget</span><span class="sy">,</span><span class="h"> </span><span class="s">'invoiceWidget'</span><span class="sy">)</span><span class="sy">;</span></div><div class="crayon-line" id="crayon-5165292e22a27-15"><span class="sy">}</span></div></div></td>
					</tr>
				</tbody></table>
			</div>
		</div>
<!-- [Format Time: 0.0044 seconds] -->
<p>This action first create a ViewModel instance for this page 
(invoice-details action). You can fetch and send to the view some 
details that are specific to this page.</p>
<p>Then, I call the forward controller plugin :</p><!-- Crayon Syntax Highlighter v2.2.0 -->

		<div id="crayon-5165292e22b13" class="crayon-syntax crayon-theme-classic crayon-font-monaco crayon-os-pc print-yes" data-settings=" minimize scroll-mouseover" style="margin-top: 12px; margin-bottom: 12px; float: none; clear: both; font-size: 12px ! important; line-height: 15px ! important; height: auto;">
		
			<div class="crayon-toolbar" data-settings=" mouseover overlay hide delay" style="font-size: 12px ! important; height: 18px ! important; line-height: 18px ! important; margin-top: -19px; display: none; position: absolute; z-index: 2;"><span class="crayon-title"></span>
			<div class="crayon-tools" style="font-size: 12px !important;height: 18px !important; line-height: 18px !important;"><div class="crayon-button crayon-nums-button crayon-pressed" title="Afficher/cacher numéros de lignes"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-plain-button" title="Basculer vers code brut"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-wrap-button" title="Toggle Line Wrap"><div class="crayon-button-icon"></div></div><div style="display: none;" class="crayon-button crayon-expand-button" title="Expand Code"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-copy-button" title="Expand Code"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-popup-button" title="Ouvrir le code dans une nouvelle fenêtre"><div class="crayon-button-icon"></div></div></div></div>
			<div class="crayon-info" style="min-height: 16.8px !important; line-height: 16.8px !important;"></div>
			<div class="crayon-plain-wrap"><textarea wrap="off" class="crayon-plain print-no" data-settings="dblclick" readonly="readonly" style="-moz-tab-size: 4; font-size: 12px ! important; line-height: 15px ! important; z-index: 0; opacity: 0; overflow: hidden;">$invoiceWidget = $this-&gt;forward()-&gt;dispatch('Application\Controller\Invoice', array(
        'action' =&gt; 'display',
        'id'     =&gt; $invoiceId
    ));</textarea></div>
			<div class="crayon-main" style="position: relative; z-index: 1; overflow: hidden;">
				<table style="" class="crayon-table">
					<tbody><tr class="crayon-row">
				<td class="crayon-nums " data-settings="show">
					<div class="crayon-nums-content" style="font-size: 12px !important; line-height: 15px !important;"><div class="crayon-num" data-line="crayon-5165292e22b13-1">1</div><div class="crayon-num crayon-striped-num" data-line="crayon-5165292e22b13-2">2</div><div class="crayon-num" data-line="crayon-5165292e22b13-3">3</div><div class="crayon-num crayon-striped-num" data-line="crayon-5165292e22b13-4">4</div></div>
				</td>
						<td class="crayon-code"><div class="crayon-pre" style="font-size: 12px !important; line-height: 15px !important;"><div class="crayon-line" id="crayon-5165292e22b13-1"><span class="sy">$</span><span class="v">invoiceWidget</span><span class="h"> </span><span class="o">=</span><span class="h"> </span><span class="sy">$</span><span class="r">this</span><span class="o">-&gt;</span><span class="e">forward</span><span class="sy">(</span><span class="sy">)</span><span class="o">-&gt;</span><span class="e">dispatch</span><span class="sy">(</span><span class="s">'Application\Controller\Invoice'</span><span class="sy">,</span><span class="h"> </span><span class="t">array</span><span class="sy">(</span></div><div class="crayon-line crayon-striped-line" id="crayon-5165292e22b13-2"><span class="h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="s">'action'</span><span class="h"> </span><span class="o">=</span><span class="o">&gt;</span><span class="h"> </span><span class="s">'display'</span><span class="sy">,</span></div><div class="crayon-line" id="crayon-5165292e22b13-3"><span class="h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="s">'id'</span><span class="h">&nbsp;&nbsp;&nbsp;&nbsp; </span><span class="o">=</span><span class="o">&gt;</span><span class="h"> </span><span class="sy">$</span><span class="i">invoiceId</span></div><div class="crayon-line crayon-striped-line" id="crayon-5165292e22b13-4"><span class="h">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="sy">)</span><span class="sy">)</span><span class="sy">;</span></div></div></td>
					</tr>
				</tbody></table>
			</div>
		</div>
<!-- [Format Time: 0.0013 seconds] -->
<p>The first parameter is the Controller name, and the second parameter 
is an array of params. Most of the time, you will set the ‘action’ key 
(as a consequence of this, you do not need to explicitely add a route, 
has the forward plugin already has everything he needs to dispatch the 
request).</p>
<p>The Forward() plugin returns a ViewModel. Finally, we add this view 
model as a child of the main view model. In your view, you just need to 
do that :</p><!-- Crayon Syntax Highlighter v2.2.0 -->

		<div id="crayon-5165292e22c01" class="crayon-syntax crayon-theme-classic crayon-font-monaco crayon-os-pc print-yes" data-settings=" minimize scroll-mouseover" style="margin-top: 12px; margin-bottom: 12px; float: none; clear: both; font-size: 12px ! important; line-height: 15px ! important; height: auto;">
		
			<div class="crayon-toolbar" data-settings=" mouseover overlay hide delay" style="font-size: 12px ! important; height: 18px ! important; line-height: 18px ! important; margin-top: -19px; display: none; z-index: 4;"><span class="crayon-title"></span>
			<div class="crayon-tools" style="font-size: 12px !important;height: 18px !important; line-height: 18px !important;"><span class="crayon-mixed-highlight" title="Contient des langages mélangés"></span><div class="crayon-button crayon-nums-button crayon-pressed" title="Afficher/cacher numéros de lignes"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-plain-button" title="Basculer vers code brut"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-wrap-button" title="Toggle Line Wrap"><div class="crayon-button-icon"></div></div><div style="display: none;" class="crayon-button crayon-expand-button" title="Expand Code"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-copy-button" title="Expand Code"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-popup-button" title="Ouvrir le code dans une nouvelle fenêtre"><div class="crayon-button-icon"></div></div></div></div>
			<div class="crayon-info" style="min-height: 16.8px !important; line-height: 16.8px !important;"></div>
			<div class="crayon-plain-wrap"><textarea wrap="off" class="crayon-plain print-no" data-settings="dblclick" readonly="readonly" style="-moz-tab-size: 4; font-size: 12px ! important; line-height: 15px ! important; z-index: 0; opacity: 0; overflow: hidden;">&lt;?php echo $this-&gt;invoiceWidget; ?&gt;</textarea></div>
			<div class="crayon-main" style="position: relative; z-index: 1; overflow: hidden;">
				<table style="" class="crayon-table">
					<tbody><tr class="crayon-row">
				<td class="crayon-nums " data-settings="show">
					<div class="crayon-nums-content" style="font-size: 12px !important; line-height: 15px !important;"><div class="crayon-num" data-line="crayon-5165292e22c01-1">1</div></div>
				</td>
						<td class="crayon-code"><div class="crayon-pre" style="font-size: 12px !important; line-height: 15px !important;"><div class="crayon-line" id="crayon-5165292e22c01-1"><span class="ta">&lt;?php</span><span class="h"> </span><span class="k ">echo</span><span class="h"> </span><span class="v">$this</span><span class="o">-&gt;</span><span class="i">invoiceWidget</span><span class="sy">;</span><span class="h"> </span><span class="ta">?&gt;</span></div></div></td>
					</tr>
				</tbody></table>
			</div>
		</div>
<!-- [Format Time: 0.0008 seconds] -->
<p>Nice and clean. Your code is well separated, it does not suffer from 
performance problems, and does not introduce any reference to the 
controller within the view.</p>
<h3>The View Helper method</h3>
<p>But this method suffers from a big flaw : this is perfect when your widgetized content is drawn in one, eventually two, pages.</p>
<p>But what if you want to draw a “Meteo” widget in all your pages ? Of 
course, you don’t want to “forward” in EVERY actions. This would be 
error prone, and make your code a lot less maintenable. For this 
specific case, the action helper was *seen* as perfect, as you would do 
this in your view :</p><!-- Crayon Syntax Highlighter v2.2.0 -->

		<div id="crayon-5165292e22ce9" class="crayon-syntax crayon-theme-classic crayon-font-monaco crayon-os-pc print-yes" data-settings=" minimize scroll-mouseover" style="margin-top: 12px; margin-bottom: 12px; float: none; clear: both; font-size: 12px ! important; line-height: 15px ! important; height: auto;">
		
			<div class="crayon-toolbar" data-settings=" mouseover overlay hide delay" style="font-size: 12px ! important; height: 18px ! important; line-height: 18px ! important; margin-top: -19px; display: none; z-index: 4;"><span class="crayon-title"></span>
			<div class="crayon-tools" style="font-size: 12px !important;height: 18px !important; line-height: 18px !important;"><span class="crayon-mixed-highlight" title="Contient des langages mélangés"></span><div class="crayon-button crayon-nums-button crayon-pressed" title="Afficher/cacher numéros de lignes"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-plain-button" title="Basculer vers code brut"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-wrap-button" title="Toggle Line Wrap"><div class="crayon-button-icon"></div></div><div style="display: none;" class="crayon-button crayon-expand-button" title="Expand Code"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-copy-button" title="Expand Code"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-popup-button" title="Ouvrir le code dans une nouvelle fenêtre"><div class="crayon-button-icon"></div></div></div></div>
			<div class="crayon-info" style="min-height: 16.8px !important; line-height: 16.8px !important;"></div>
			<div class="crayon-plain-wrap"><textarea wrap="off" class="crayon-plain print-no" data-settings="dblclick" readonly="readonly" style="-moz-tab-size: 4; font-size: 12px ! important; line-height: 15px ! important; z-index: 0; opacity: 0; overflow: hidden;">&lt;?php echo $this-&gt;action('displayWidget', 'Meteo', null, array('city' =&gt; 'Paris')); ?&gt;</textarea></div>
			<div class="crayon-main" style="position: relative; z-index: 1; overflow: hidden;">
				<table style="" class="crayon-table">
					<tbody><tr class="crayon-row">
				<td class="crayon-nums " data-settings="show">
					<div class="crayon-nums-content" style="font-size: 12px !important; line-height: 15px !important;"><div class="crayon-num" data-line="crayon-5165292e22ce9-1">1</div></div>
				</td>
						<td class="crayon-code"><div class="crayon-pre" style="font-size: 12px !important; line-height: 15px !important;"><div class="crayon-line" id="crayon-5165292e22ce9-1"><span class="ta">&lt;?php</span><span class="h"> </span><span class="k ">echo</span><span class="h"> </span><span class="v">$this</span><span class="o">-&gt;</span><span class="e">action</span><span class="sy">(</span><span class="s">'displayWidget'</span><span class="sy">,</span><span class="h"> </span><span class="s">'Meteo'</span><span class="sy">,</span><span class="h"> </span><span class="t">null</span><span class="sy">,</span><span class="h"> </span><span class="t">array</span><span class="sy">(</span><span class="s">'city'</span><span class="h"> </span><span class="o">=</span><span class="o">&gt;</span><span class="h"> </span><span class="s">'Paris'</span><span class="sy">)</span><span class="sy">)</span><span class="sy">;</span><span class="h"> </span><span class="ta">?&gt;</span></div></div></td>
					</tr>
				</tbody></table>
			</div>
		</div>
<!-- [Format Time: 0.0013 seconds] -->
<p>Hopefully, there is a much better alternative in Zend Framework 2 : 
view helpers. The idea is to create a view helper for every “widget”. 
Your view helper will fetch data from either database (in this case, you
 have to handle the dependencies through the ServiceManager, as we will 
see later), or a web service, for instance. Once it has the data, it 
will call the “Partial” helper (or manually render the HTML directly in 
the view helper), and return the generated HTML.</p>
<p>Let’s stay with our Meteo example by creating a simple View helper 
for that. Our view helper will have a dependency to a “MeteoService” :</p><!-- Crayon Syntax Highlighter v2.2.0 -->

		<div id="crayon-5165292e22dd3" class="crayon-syntax crayon-theme-classic crayon-font-monaco crayon-os-pc print-yes" data-settings=" minimize scroll-mouseover" style="margin-top: 12px; margin-bottom: 12px; float: none; clear: both; font-size: 12px ! important; line-height: 15px ! important; height: auto;">
		
			<div class="crayon-toolbar" data-settings=" mouseover overlay hide delay" style="font-size: 12px ! important; height: 18px ! important; line-height: 18px ! important; margin-top: -19px; display: none; position: absolute; z-index: 2;"><span class="crayon-title"></span>
			<div class="crayon-tools" style="font-size: 12px !important;height: 18px !important; line-height: 18px !important;"><div class="crayon-button crayon-nums-button crayon-pressed" title="Afficher/cacher numéros de lignes"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-plain-button" title="Basculer vers code brut"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-wrap-button" title="Toggle Line Wrap"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-expand-button" title="Expand Code"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-copy-button" title="Expand Code"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-popup-button" title="Ouvrir le code dans une nouvelle fenêtre"><div class="crayon-button-icon"></div></div><span class="crayon-language">PHP</span></div></div>
			<div class="crayon-info" style="min-height: 16.8px !important; line-height: 16.8px !important;"></div>
			<div class="crayon-plain-wrap"><textarea wrap="off" class="crayon-plain print-no" data-settings="dblclick" readonly="readonly" style="-moz-tab-size: 4; font-size: 12px ! important; line-height: 15px ! important; z-index: 0; opacity: 0; overflow: hidden;">namespace Application\View\Helper;

use Application\Service\MeteoService;
use Zend\View\Helper\AbstractHelper;

class MeteoWidget extends AbstractHelper
{
    protected $meteoService = null;

    public function __construct(MeteoService $meteoService)
    {
    	$this-&gt;meteoService = $meteoService;
    }

    public function __invoke($city)
    {
        $temperature = $this-&gt;service-&gt;getTemperature($city);

        return $this-&gt;getView()-&gt;render('application/meteo/display', array('temperature' =&gt; $temperature));

        // If a full template is overkill, you could of course just render
        // the widget directly
        return "&lt;div&gt;The temperature is $temperature degrees&lt;/div&gt;";
    }
}</textarea></div>
			<div class="crayon-main" style="position: relative; z-index: 1; overflow: hidden;">
				<table style="" class="crayon-table">
					<tbody><tr class="crayon-row">
				<td class="crayon-nums " data-settings="show">
					<div class="crayon-nums-content" style="font-size: 12px !important; line-height: 15px !important;"><div class="crayon-num" data-line="crayon-5165292e22dd3-1">1</div><div class="crayon-num crayon-striped-num" data-line="crayon-5165292e22dd3-2">2</div><div class="crayon-num" data-line="crayon-5165292e22dd3-3">3</div><div class="crayon-num crayon-striped-num" data-line="crayon-5165292e22dd3-4">4</div><div class="crayon-num" data-line="crayon-5165292e22dd3-5">5</div><div class="crayon-num crayon-striped-num" data-line="crayon-5165292e22dd3-6">6</div><div class="crayon-num" data-line="crayon-5165292e22dd3-7">7</div><div class="crayon-num crayon-striped-num" data-line="crayon-5165292e22dd3-8">8</div><div class="crayon-num" data-line="crayon-5165292e22dd3-9">9</div><div class="crayon-num crayon-striped-num" data-line="crayon-5165292e22dd3-10">10</div><div class="crayon-num" data-line="crayon-5165292e22dd3-11">11</div><div class="crayon-num crayon-striped-num" data-line="crayon-5165292e22dd3-12">12</div><div class="crayon-num" data-line="crayon-5165292e22dd3-13">13</div><div class="crayon-num crayon-striped-num" data-line="crayon-5165292e22dd3-14">14</div><div class="crayon-num" data-line="crayon-5165292e22dd3-15">15</div><div class="crayon-num crayon-striped-num" data-line="crayon-5165292e22dd3-16">16</div><div class="crayon-num" data-line="crayon-5165292e22dd3-17">17</div><div class="crayon-num crayon-striped-num" data-line="crayon-5165292e22dd3-18">18</div><div class="crayon-num" data-line="crayon-5165292e22dd3-19">19</div><div class="crayon-num crayon-striped-num" data-line="crayon-5165292e22dd3-20">20</div><div class="crayon-num" data-line="crayon-5165292e22dd3-21">21</div><div class="crayon-num crayon-striped-num" data-line="crayon-5165292e22dd3-22">22</div><div class="crayon-num" data-line="crayon-5165292e22dd3-23">23</div><div class="crayon-num crayon-striped-num" data-line="crayon-5165292e22dd3-24">24</div><div class="crayon-num" data-line="crayon-5165292e22dd3-25">25</div></div>
				</td>
						<td class="crayon-code"><div class="crayon-pre" style="font-size: 12px !important; line-height: 15px !important;"><div class="crayon-line" id="crayon-5165292e22dd3-1"><span class="t">namespace</span><span class="h"> </span><span class="i">Application</span><span class="sy">\</span><span class="i">View</span><span class="sy">\</span><span class="i">Helper</span><span class="sy">;</span></div><div class="crayon-line crayon-striped-line" id="crayon-5165292e22dd3-2">&nbsp;</div><div class="crayon-line" id="crayon-5165292e22dd3-3"><span class="st">use</span><span class="h"> </span><span class="i">Application</span><span class="sy">\</span><span class="i">Service</span><span class="sy">\</span><span class="i">MeteoService</span><span class="sy">;</span></div><div class="crayon-line crayon-striped-line" id="crayon-5165292e22dd3-4"><span class="st">use</span><span class="h"> </span><span class="i">Zend</span><span class="sy">\</span><span class="i">View</span><span class="sy">\</span><span class="i">Helper</span><span class="sy">\</span><span class="i">AbstractHelper</span><span class="sy">;</span></div><div class="crayon-line" id="crayon-5165292e22dd3-5">&nbsp;</div><div class="crayon-line crayon-striped-line" id="crayon-5165292e22dd3-6"><span class="t">class</span><span class="h"> </span><span class="e">MeteoWidget</span><span class="h"> </span><span class="r">extends</span><span class="h"> </span><span class="e">AbstractHelper</span></div><div class="crayon-line" id="crayon-5165292e22dd3-7"><span class="sy">{</span></div><div class="crayon-line crayon-striped-line" id="crayon-5165292e22dd3-8"><span class="h">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="m">protected</span><span class="h"> </span><span class="v">$meteoService</span><span class="h"> </span><span class="o">=</span><span class="h"> </span><span class="t">null</span><span class="sy">;</span></div><div class="crayon-line" id="crayon-5165292e22dd3-9">&nbsp;</div><div class="crayon-line crayon-striped-line" id="crayon-5165292e22dd3-10"><span class="h">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="m">public</span><span class="h"> </span><span class="t">function</span><span class="h"> </span><span class="e">__construct</span><span class="sy">(</span><span class="i">MeteoService</span><span class="h"> </span><span class="v">$meteoService</span><span class="sy">)</span></div><div class="crayon-line" id="crayon-5165292e22dd3-11"><span class="h">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="sy">{</span></div><div class="crayon-line crayon-striped-line" id="crayon-5165292e22dd3-12"><span class="h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="v">$this</span><span class="o">-&gt;</span><span class="i">meteoService</span><span class="h"> </span><span class="o">=</span><span class="h"> </span><span class="v">$meteoService</span><span class="sy">;</span></div><div class="crayon-line" id="crayon-5165292e22dd3-13"><span class="h">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="sy">}</span></div><div class="crayon-line crayon-striped-line" id="crayon-5165292e22dd3-14">&nbsp;</div><div class="crayon-line" id="crayon-5165292e22dd3-15"><span class="h">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="m">public</span><span class="h"> </span><span class="t">function</span><span class="h"> </span><span class="e">__invoke</span><span class="sy">(</span><span class="v">$city</span><span class="sy">)</span></div><div class="crayon-line crayon-striped-line" id="crayon-5165292e22dd3-16"><span class="h">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="sy">{</span></div><div class="crayon-line" id="crayon-5165292e22dd3-17"><span class="h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="v">$temperature</span><span class="h"> </span><span class="o">=</span><span class="h"> </span><span class="v">$this</span><span class="o">-&gt;</span><span class="i">service</span><span class="o">-&gt;</span><span class="e">getTemperature</span><span class="sy">(</span><span class="v">$city</span><span class="sy">)</span><span class="sy">;</span></div><div class="crayon-line crayon-striped-line" id="crayon-5165292e22dd3-18">&nbsp;</div><div class="crayon-line" id="crayon-5165292e22dd3-19"><span class="h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="k ">return</span><span class="h"> </span><span class="v">$this</span><span class="o">-&gt;</span><span class="e">getView</span><span class="sy">(</span><span class="sy">)</span><span class="o">-&gt;</span><span class="e">render</span><span class="sy">(</span><span class="s">'application/meteo/display'</span><span class="sy">,</span><span class="h"> </span><span class="t">array</span><span class="sy">(</span><span class="s">'temperature'</span><span class="h"> </span><span class="o">=</span><span class="o">&gt;</span><span class="h"> </span><span class="v">$temperature</span><span class="sy">)</span><span class="sy">)</span><span class="sy">;</span></div><div class="crayon-line crayon-striped-line" id="crayon-5165292e22dd3-20">&nbsp;</div><div class="crayon-line" id="crayon-5165292e22dd3-21"><span class="h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="c">// If a full template is overkill, you could of course just render</span></div><div class="crayon-line crayon-striped-line" id="crayon-5165292e22dd3-22"><span class="h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="c">// the widget directly</span></div><div class="crayon-line" id="crayon-5165292e22dd3-23"><span class="h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="k ">return</span><span class="h"> </span><span class="s">"&lt;div&gt;The temperature is $temperature degrees&lt;/div&gt;"</span><span class="sy">;</span></div><div class="crayon-line crayon-striped-line" id="crayon-5165292e22dd3-24"><span class="h">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="sy">}</span></div><div class="crayon-line" id="crayon-5165292e22dd3-25"><span class="sy">}</span></div></div></td>
					</tr>
				</tbody></table>
			</div>
		</div>
<!-- [Format Time: 0.0064 seconds] -->
<p>Because the View Helper has a dependency, you will have to tell the Service Manager how to handle those dependencies :</p><!-- Crayon Syntax Highlighter v2.2.0 -->

		<div id="crayon-5165292e22ec1" class="crayon-syntax crayon-theme-classic crayon-font-monaco crayon-os-pc print-yes" data-settings=" minimize scroll-mouseover" style="margin-top: 12px; margin-bottom: 12px; float: none; clear: both; font-size: 12px ! important; line-height: 15px ! important; height: auto;">
		
			<div class="crayon-toolbar" data-settings=" mouseover overlay hide delay" style="font-size: 12px ! important; height: 18px ! important; line-height: 18px ! important; margin-top: -19px; display: none; position: absolute; z-index: 2;"><span class="crayon-title"></span>
			<div class="crayon-tools" style="font-size: 12px !important;height: 18px !important; line-height: 18px !important;"><div class="crayon-button crayon-nums-button crayon-pressed" title="Afficher/cacher numéros de lignes"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-plain-button" title="Basculer vers code brut"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-wrap-button" title="Toggle Line Wrap"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-expand-button" title="Expand Code"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-copy-button" title="Expand Code"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-popup-button" title="Ouvrir le code dans une nouvelle fenêtre"><div class="crayon-button-icon"></div></div><span class="crayon-language">PHP</span></div></div>
			<div class="crayon-info" style="min-height: 16.8px !important; line-height: 16.8px !important;"></div>
			<div class="crayon-plain-wrap"><textarea wrap="off" class="crayon-plain print-no" data-settings="dblclick" readonly="readonly" style="-moz-tab-size: 4; font-size: 12px ! important; line-height: 15px ! important; z-index: 0; opacity: 0; overflow: hidden;">// In your Module.php

public function getViewHelperConfig()
{
	return array(
		'factories' =&gt; array(
			'meteoWidget' =&gt; function ($serviceManager) {
				// Get the Meteo Service
				$meteoService = $serviceManager-&gt;getServiceLocator-&gt;get('MeteoService');
				return new \Application\View\Helper\MeteoWidget($meteoService);
			}
		)
	);
}</textarea></div>
			<div class="crayon-main" style="position: relative; z-index: 1; overflow: hidden;">
				<table style="" class="crayon-table">
					<tbody><tr class="crayon-row">
				<td class="crayon-nums " data-settings="show">
					<div class="crayon-nums-content" style="font-size: 12px !important; line-height: 15px !important;"><div class="crayon-num" data-line="crayon-5165292e22ec1-1">1</div><div class="crayon-num crayon-striped-num" data-line="crayon-5165292e22ec1-2">2</div><div class="crayon-num" data-line="crayon-5165292e22ec1-3">3</div><div class="crayon-num crayon-striped-num" data-line="crayon-5165292e22ec1-4">4</div><div class="crayon-num" data-line="crayon-5165292e22ec1-5">5</div><div class="crayon-num crayon-striped-num" data-line="crayon-5165292e22ec1-6">6</div><div class="crayon-num" data-line="crayon-5165292e22ec1-7">7</div><div class="crayon-num crayon-striped-num" data-line="crayon-5165292e22ec1-8">8</div><div class="crayon-num" data-line="crayon-5165292e22ec1-9">9</div><div class="crayon-num crayon-striped-num" data-line="crayon-5165292e22ec1-10">10</div><div class="crayon-num" data-line="crayon-5165292e22ec1-11">11</div><div class="crayon-num crayon-striped-num" data-line="crayon-5165292e22ec1-12">12</div><div class="crayon-num" data-line="crayon-5165292e22ec1-13">13</div><div class="crayon-num crayon-striped-num" data-line="crayon-5165292e22ec1-14">14</div></div>
				</td>
						<td class="crayon-code"><div class="crayon-pre" style="font-size: 12px !important; line-height: 15px !important;"><div class="crayon-line" id="crayon-5165292e22ec1-1"><span class="c">// In your Module.php</span></div><div class="crayon-line crayon-striped-line" id="crayon-5165292e22ec1-2">&nbsp;</div><div class="crayon-line" id="crayon-5165292e22ec1-3"><span class="m">public</span><span class="h"> </span><span class="t">function</span><span class="h"> </span><span class="e">getViewHelperConfig</span><span class="sy">(</span><span class="sy">)</span></div><div class="crayon-line crayon-striped-line" id="crayon-5165292e22ec1-4"><span class="sy">{</span></div><div class="crayon-line" id="crayon-5165292e22ec1-5"><span class="h">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="k ">return</span><span class="h"> </span><span class="t">array</span><span class="sy">(</span></div><div class="crayon-line crayon-striped-line" id="crayon-5165292e22ec1-6"><span class="h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="s">'factories'</span><span class="h"> </span><span class="o">=</span><span class="o">&gt;</span><span class="h"> </span><span class="t">array</span><span class="sy">(</span></div><div class="crayon-line" id="crayon-5165292e22ec1-7"><span class="h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="s">'meteoWidget'</span><span class="h"> </span><span class="o">=</span><span class="o">&gt;</span><span class="h"> </span><span class="t">function</span><span class="h"> </span><span class="sy">(</span><span class="v">$serviceManager</span><span class="sy">)</span><span class="h"> </span><span class="sy">{</span></div><div class="crayon-line crayon-striped-line" id="crayon-5165292e22ec1-8"><span class="h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="c">// Get the Meteo Service</span></div><div class="crayon-line" id="crayon-5165292e22ec1-9"><span class="h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="v">$meteoService</span><span class="h"> </span><span class="o">=</span><span class="h"> </span><span class="v">$serviceManager</span><span class="o">-&gt;</span><span class="i">getServiceLocator</span><span class="o">-&gt;</span><span class="e">get</span><span class="sy">(</span><span class="s">'MeteoService'</span><span class="sy">)</span><span class="sy">;</span></div><div class="crayon-line crayon-striped-line" id="crayon-5165292e22ec1-10"><span class="h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="k ">return</span><span class="h"> </span><span class="r">new</span><span class="h"> </span><span class="sy">\</span><span class="i">Application</span><span class="sy">\</span><span class="i">View</span><span class="sy">\</span><span class="i">Helper</span><span class="sy">\</span><span class="e">MeteoWidget</span><span class="sy">(</span><span class="v">$meteoService</span><span class="sy">)</span><span class="sy">;</span></div><div class="crayon-line" id="crayon-5165292e22ec1-11"><span class="h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="sy">}</span></div><div class="crayon-line crayon-striped-line" id="crayon-5165292e22ec1-12"><span class="h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="sy">)</span></div><div class="crayon-line" id="crayon-5165292e22ec1-13"><span class="h">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="sy">)</span><span class="sy">;</span></div><div class="crayon-line crayon-striped-line" id="crayon-5165292e22ec1-14"><span class="sy">}</span></div></div></td>
					</tr>
				</tbody></table>
			</div>
		</div>
<!-- [Format Time: 0.0033 seconds] -->
<p>And in your views :</p><!-- Crayon Syntax Highlighter v2.2.0 -->

		<div id="crayon-5165292e22fac" class="crayon-syntax crayon-theme-classic crayon-font-monaco crayon-os-pc print-yes" data-settings=" minimize scroll-mouseover" style="margin-top: 12px; margin-bottom: 12px; float: none; clear: both; font-size: 12px ! important; line-height: 15px ! important; height: auto;">
		
			<div class="crayon-toolbar" data-settings=" mouseover overlay hide delay" style="font-size: 12px ! important; height: 18px ! important; line-height: 18px ! important; margin-top: -19px; display: none; z-index: 4;"><span class="crayon-title"></span>
			<div class="crayon-tools" style="font-size: 12px !important;height: 18px !important; line-height: 18px !important;"><span class="crayon-mixed-highlight" title="Contient des langages mélangés"></span><div class="crayon-button crayon-nums-button crayon-pressed" title="Afficher/cacher numéros de lignes"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-plain-button" title="Basculer vers code brut"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-wrap-button" title="Toggle Line Wrap"><div class="crayon-button-icon"></div></div><div style="display: none;" class="crayon-button crayon-expand-button" title="Expand Code"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-copy-button" title="Expand Code"><div class="crayon-button-icon"></div></div><div class="crayon-button crayon-popup-button" title="Ouvrir le code dans une nouvelle fenêtre"><div class="crayon-button-icon"></div></div></div></div>
			<div class="crayon-info" style="min-height: 16.8px !important; line-height: 16.8px !important;"></div>
			<div class="crayon-plain-wrap"><textarea wrap="off" class="crayon-plain print-no" data-settings="dblclick" readonly="readonly" style="-moz-tab-size: 4; font-size: 12px ! important; line-height: 15px ! important; z-index: 0; opacity: 0; overflow: hidden;">&lt;?php echo $this-&gt;meteoWidget('Paris'); ?&gt;</textarea></div>
			<div class="crayon-main" style="position: relative; z-index: 1; overflow: hidden;">
				<table style="" class="crayon-table">
					<tbody><tr class="crayon-row">
				<td class="crayon-nums " data-settings="show">
					<div class="crayon-nums-content" style="font-size: 12px !important; line-height: 15px !important;"><div class="crayon-num" data-line="crayon-5165292e22fac-1">1</div></div>
				</td>
						<td class="crayon-code"><div class="crayon-pre" style="font-size: 12px !important; line-height: 15px !important;"><div class="crayon-line" id="crayon-5165292e22fac-1"><span class="ta">&lt;?php</span><span class="h"> </span><span class="k ">echo</span><span class="h"> </span><span class="v">$this</span><span class="o">-&gt;</span><span class="e">meteoWidget</span><span class="sy">(</span><span class="s">'Paris'</span><span class="sy">)</span><span class="sy">;</span><span class="h"> </span><span class="ta">?&gt;</span></div></div></td>
					</tr>
				</tbody></table>
			</div>
		</div>
<!-- [Format Time: 0.0008 seconds] -->
<p>And voilà ! You have a nice widgetized architecture that you can reuse in all of your pages !</p>
					</div><!-- .entry-content -->
		
		<footer class="entry-meta">
			Cette entrée a été publiée dans <a href="http://www.michaelgallego.fr/blog/category/programmation/" title="Voir tous les articles dans Programmation" rel="category tag">Programmation</a>, et marquée avec <a href="http://www.michaelgallego.fr/blog/tag/action/" rel="tag">action</a>, <a href="http://www.michaelgallego.fr/blog/tag/action-helper/" rel="tag">action helper</a>, <a href="http://www.michaelgallego.fr/blog/tag/widget/" rel="tag">widget</a>, <a href="http://www.michaelgallego.fr/blog/tag/widgetized/" rel="tag">widgetized</a>, <a href="http://www.michaelgallego.fr/blog/tag/zend/" rel="tag">zend</a>, <a href="http://www.michaelgallego.fr/blog/tag/zend-framework-2/" rel="tag">zend framework 2</a>, <a href="http://www.michaelgallego.fr/blog/tag/zf2/" rel="tag">zf2</a>, le <a href="http://www.michaelgallego.fr/blog/2012/10/06/how-to-replace-the-action-helper-in-zf-2-and-make-great-widgetized-content/" title="10 h 01 min" rel="bookmark"><time class="entry-date" datetime="2012-10-06T10:01:18+00:00">6 octobre 2012</time></a> <span class="by-author">par <span class="author vcard"><a class="url fn n" href="http://www.michaelgallego.fr/blog/author/admin/" title="Afficher tous les articles par admin" rel="author">admin</a></span></span>.								</footer><!-- .entry-meta -->
	</article><!-- #post -->

				<nav class="nav-single">
					<h3 class="assistive-text">Navigation des articles</h3>
					<span class="nav-previous"><a href="http://www.michaelgallego.fr/blog/2012/07/19/how-to-use-zendmail/" rel="prev"><span class="meta-nav">←</span> How to use Zend\Mail</a></span>
					<span class="nav-next"><a href="http://www.michaelgallego.fr/blog/2012/10/06/comment-remplacer-laide-de-vue-action-dans-zf-2-et-faire-du-contenu-par-widget/" rel="next">Comment remplacer l’aide de vue “Action” dans ZF 2 (et faire du contenu par widget) <span class="meta-nav">→</span></a></span>
				</nav><!-- .nav-single -->

				
<div id="comments" class="comments-area">

	
			<h2 class="comments-title">
			14 réflexions au sujet de «&nbsp;<span>How to replace the “Action” helper in ZF 2 (and make great widgetized content)</span>&nbsp;»		</h2>

		<ol class="commentlist">
				<li class="pingback even thread-even depth-1" id="comment-205">
		<p>Ping&nbsp;: <a href="http://www.michaelgallego.fr/blog/?p=225" rel="external nofollow" class="url">Comment remplacer l’aide de vue “Action” dans ZF 2 (et faire du contenu par widget) | Un blog sur tout et rien…</a> </p>
	</li>
	<li class="comment odd alt thread-odd thread-alt depth-1" id="li-comment-228">
		<article id="comment-228" class="comment">
			<header class="comment-meta comment-author vcard">
				<img id="grav-801c564cec899349cf1b98ce264528bc-0" alt="" src="replace_action_plugin_files/801c564cec899349cf1b98ce264528bc.png" class="avatar avatar-44 photo grav-hashed grav-hijack" height="44" width="44"><cite class="fn">ZF2-fun </cite><a href="http://www.michaelgallego.fr/blog/2012/10/06/how-to-replace-the-action-helper-in-zf-2-and-make-great-widgetized-content/#comment-228"><time datetime="2012-10-11T08:10:35+00:00">11 octobre 2012 à 8 h 10 min</time></a>			</header><!-- .comment-meta -->

			
			<section class="comment-content comment">
				<p>Please show Application\Service\MeteoService.php contents <img src="replace_action_plugin_files/icon_smile.gif" alt=":)" class="wp-smiley"> </p>
							</section><!-- .comment-content -->

			<div class="reply">
				<a class="comment-reply-link" href="http://www.michaelgallego.fr/blog/2012/10/06/how-to-replace-the-action-helper-in-zf-2-and-make-great-widgetized-content/?replytocom=228#respond" onclick='return addComment.moveForm("comment-228", "228", "respond", "223")'>Répondre</a> <span>↓</span>			</div><!-- .reply -->
		</article><!-- #comment-## -->
	<ol class="children">
	<li class="comment byuser comment-author-admin bypostauthor even depth-2" id="li-comment-229">
		<article id="comment-229" class="comment">
			<header class="comment-meta comment-author vcard">
				<img id="grav-2c3202718f850e5822f31a72b904668e-0" alt="" src="replace_action_plugin_files/2c3202718f850e5822f31a72b904668e.png" class="avatar avatar-44 photo grav-hashed grav-hijack" height="44" width="44"><cite class="fn">admin <span> Auteur de l’article</span></cite><a href="http://www.michaelgallego.fr/blog/2012/10/06/how-to-replace-the-action-helper-in-zf-2-and-make-great-widgetized-content/#comment-229"><time datetime="2012-10-11T08:25:14+00:00">11 octobre 2012 à 8 h 25 min</time></a>			</header><!-- .comment-meta -->

			
			<section class="comment-content comment">
				<p>Hi,</p>
<p>This is out of scope of this article and I didn’t write such a 
service. Basically, the service will be the one that contains the db 
mapper and return results from databases. Services are also used in 
controllers.</p>
<p>I suggest you to have more information about this.</p>
							</section><!-- .comment-content -->

			<div class="reply">
				<a class="comment-reply-link" href="http://www.michaelgallego.fr/blog/2012/10/06/how-to-replace-the-action-helper-in-zf-2-and-make-great-widgetized-content/?replytocom=229#respond" onclick='return addComment.moveForm("comment-229", "229", "respond", "223")'>Répondre</a> <span>↓</span>			</div><!-- .reply -->
		</article><!-- #comment-## -->
	</li>
</ol>
</li>
	<li class="comment odd alt thread-even depth-1" id="li-comment-230">
		<article id="comment-230" class="comment">
			<header class="comment-meta comment-author vcard">
				<img id="grav-801c564cec899349cf1b98ce264528bc-1" alt="" src="replace_action_plugin_files/801c564cec899349cf1b98ce264528bc.png" class="avatar avatar-44 photo grav-hashed grav-hijack" height="44" width="44"><cite class="fn">ZF2-fun </cite><a href="http://www.michaelgallego.fr/blog/2012/10/06/how-to-replace-the-action-helper-in-zf-2-and-make-great-widgetized-content/#comment-230"><time datetime="2012-10-11T09:09:02+00:00">11 octobre 2012 à 9 h 09 min</time></a>			</header><!-- .comment-meta -->

			
			<section class="comment-content comment">
				<p>Hi Michaël!</p>
<p>I don’t understand that in the class of MeteoWidget __invoke method, how call the $this-&gt;service-&gt;getTemperature($city);<br>
Because I can’t see refer code in this.</p>
<p>Thanks your help <img src="replace_action_plugin_files/icon_smile.gif" alt=":)" class="wp-smiley"> </p>
							</section><!-- .comment-content -->

			<div class="reply">
				<a class="comment-reply-link" href="http://www.michaelgallego.fr/blog/2012/10/06/how-to-replace-the-action-helper-in-zf-2-and-make-great-widgetized-content/?replytocom=230#respond" onclick='return addComment.moveForm("comment-230", "230", "respond", "223")'>Répondre</a> <span>↓</span>			</div><!-- .reply -->
		</article><!-- #comment-## -->
	<ol class="children">
	<li class="comment byuser comment-author-admin bypostauthor even depth-2" id="li-comment-232">
		<article id="comment-232" class="comment">
			<header class="comment-meta comment-author vcard">
				<img id="grav-2c3202718f850e5822f31a72b904668e-1" alt="" src="replace_action_plugin_files/2c3202718f850e5822f31a72b904668e.png" class="avatar avatar-44 photo grav-hashed grav-hijack" height="44" width="44"><cite class="fn">admin <span> Auteur de l’article</span></cite><a href="http://www.michaelgallego.fr/blog/2012/10/06/how-to-replace-the-action-helper-in-zf-2-and-make-great-widgetized-content/#comment-232"><time datetime="2012-10-11T10:13:32+00:00">11 octobre 2012 à 10 h 13 min</time></a>			</header><!-- .comment-meta -->

			
			<section class="comment-content comment">
				<p>Hi,</p>
<p>As I told you the goal of this post was not to explain services. I’ve
 done this code just for example so I didn’t written MeteoService code, 
this was just an example.</p>
<p>If its clearer for you, just imagine the MeteoService as a class that
 will call a web service to get the temperature. In other cases, it can 
be used to retrieve an element from database. Once again, this example 
is not complete it was just to demonstrate how view helpers can help to 
create widgetized content <img src="replace_action_plugin_files/icon_smile.gif" alt=":)" class="wp-smiley"> .</p>
							</section><!-- .comment-content -->

			<div class="reply">
				<a class="comment-reply-link" href="http://www.michaelgallego.fr/blog/2012/10/06/how-to-replace-the-action-helper-in-zf-2-and-make-great-widgetized-content/?replytocom=232#respond" onclick='return addComment.moveForm("comment-232", "232", "respond", "223")'>Répondre</a> <span>↓</span>			</div><!-- .reply -->
		</article><!-- #comment-## -->
	</li>
</ol>
</li>
	<li class="comment odd alt thread-odd thread-alt depth-1" id="li-comment-233">
		<article id="comment-233" class="comment">
			<header class="comment-meta comment-author vcard">
				<img id="grav-801c564cec899349cf1b98ce264528bc-2" alt="" src="replace_action_plugin_files/801c564cec899349cf1b98ce264528bc.png" class="avatar avatar-44 photo grav-hashed grav-hijack" height="44" width="44"><cite class="fn">ZF2-fun </cite><a href="http://www.michaelgallego.fr/blog/2012/10/06/how-to-replace-the-action-helper-in-zf-2-and-make-great-widgetized-content/#comment-233"><time datetime="2012-10-11T10:49:41+00:00">11 octobre 2012 à 10 h 49 min</time></a>			</header><!-- .comment-meta -->

			
			<section class="comment-content comment">
				<p>I understand Thanks your help Michaël <img src="replace_action_plugin_files/icon_smile.gif" alt=":)" class="wp-smiley"> </p>
							</section><!-- .comment-content -->

			<div class="reply">
				<a class="comment-reply-link" href="http://www.michaelgallego.fr/blog/2012/10/06/how-to-replace-the-action-helper-in-zf-2-and-make-great-widgetized-content/?replytocom=233#respond" onclick='return addComment.moveForm("comment-233", "233", "respond", "223")'>Répondre</a> <span>↓</span>			</div><!-- .reply -->
		</article><!-- #comment-## -->
	</li>
	<li class="comment even thread-even depth-1" id="li-comment-248">
		<article id="comment-248" class="comment">
			<header class="comment-meta comment-author vcard">
				<img id="grav-59a5a071e6c747248bcc003b92195566-0" alt="" src="replace_action_plugin_files/59a5a071e6c747248bcc003b92195566.jpeg" class="avatar avatar-44 photo grav-hashed grav-hijack" height="44" width="44"><cite class="fn"><a href="http://lobach.info/" rel="external nofollow" class="url">Oleg Lobach</a> </cite><a href="http://www.michaelgallego.fr/blog/2012/10/06/how-to-replace-the-action-helper-in-zf-2-and-make-great-widgetized-content/#comment-248"><time datetime="2012-10-18T12:25:07+00:00">18 octobre 2012 à 12 h 25 min</time></a>			</header><!-- .comment-meta -->

			
			<section class="comment-content comment">
				<p>Hi Michaël!</p>
<p>Very nice post! Thanks!<br>
If you don’t mind, I want to translate it to Russian and post on my blog.</p>
							</section><!-- .comment-content -->

			<div class="reply">
				<a class="comment-reply-link" href="http://www.michaelgallego.fr/blog/2012/10/06/how-to-replace-the-action-helper-in-zf-2-and-make-great-widgetized-content/?replytocom=248#respond" onclick='return addComment.moveForm("comment-248", "248", "respond", "223")'>Répondre</a> <span>↓</span>			</div><!-- .reply -->
		</article><!-- #comment-## -->
	<ol class="children">
	<li class="comment byuser comment-author-admin bypostauthor odd alt depth-2" id="li-comment-249">
		<article id="comment-249" class="comment">
			<header class="comment-meta comment-author vcard">
				<img id="grav-2c3202718f850e5822f31a72b904668e-2" alt="" src="replace_action_plugin_files/2c3202718f850e5822f31a72b904668e.png" class="avatar avatar-44 photo grav-hashed grav-hijack" height="44" width="44"><cite class="fn">admin <span> Auteur de l’article</span></cite><a href="http://www.michaelgallego.fr/blog/2012/10/06/how-to-replace-the-action-helper-in-zf-2-and-make-great-widgetized-content/#comment-249"><time datetime="2012-10-18T12:55:15+00:00">18 octobre 2012 à 12 h 55 min</time></a>			</header><!-- .comment-meta -->

			
			<section class="comment-content comment">
				<p>Sure <img src="replace_action_plugin_files/icon_smile.gif" alt=":)" class="wp-smiley"> .</p>
<p>Please send me the link once it is translated so I can add it here <img src="replace_action_plugin_files/icon_smile.gif" alt=":)" class="wp-smiley"> .</p>
							</section><!-- .comment-content -->

			<div class="reply">
				<a class="comment-reply-link" href="http://www.michaelgallego.fr/blog/2012/10/06/how-to-replace-the-action-helper-in-zf-2-and-make-great-widgetized-content/?replytocom=249#respond" onclick='return addComment.moveForm("comment-249", "249", "respond", "223")'>Répondre</a> <span>↓</span>			</div><!-- .reply -->
		</article><!-- #comment-## -->
	<ol class="children">
	<li class="comment even depth-3" id="li-comment-250">
		<article id="comment-250" class="comment">
			<header class="comment-meta comment-author vcard">
				<img id="grav-59a5a071e6c747248bcc003b92195566-1" alt="" src="replace_action_plugin_files/59a5a071e6c747248bcc003b92195566.jpeg" class="avatar avatar-44 photo grav-hashed grav-hijack" height="44" width="44"><cite class="fn"><a href="http://lobach.info/" rel="external nofollow" class="url">Oleg Lobach</a> </cite><a href="http://www.michaelgallego.fr/blog/2012/10/06/how-to-replace-the-action-helper-in-zf-2-and-make-great-widgetized-content/#comment-250"><time datetime="2012-10-18T13:14:31+00:00">18 octobre 2012 à 13 h 14 min</time></a>			</header><!-- .comment-meta -->

			
			<section class="comment-content comment">
				<p>Ok. Deal</p>
							</section><!-- .comment-content -->

			<div class="reply">
				<a class="comment-reply-link" href="http://www.michaelgallego.fr/blog/2012/10/06/how-to-replace-the-action-helper-in-zf-2-and-make-great-widgetized-content/?replytocom=250#respond" onclick='return addComment.moveForm("comment-250", "250", "respond", "223")'>Répondre</a> <span>↓</span>			</div><!-- .reply -->
		</article><!-- #comment-## -->
	</li>
	<li class="comment odd alt depth-3" id="li-comment-253">
		<article id="comment-253" class="comment">
			<header class="comment-meta comment-author vcard">
				<img id="grav-59a5a071e6c747248bcc003b92195566-2" alt="" src="replace_action_plugin_files/59a5a071e6c747248bcc003b92195566.jpeg" class="avatar avatar-44 photo grav-hashed grav-hijack" height="44" width="44"><cite class="fn"><a href="http://lobach.info/" rel="external nofollow" class="url">Oleg Lobach</a> </cite><a href="http://www.michaelgallego.fr/blog/2012/10/06/how-to-replace-the-action-helper-in-zf-2-and-make-great-widgetized-content/#comment-253"><time datetime="2012-10-18T20:13:04+00:00">18 octobre 2012 à 20 h 13 min</time></a>			</header><!-- .comment-meta -->

			
			<section class="comment-content comment">
				<p>Done. Here you go: <a href="http://zftutorials.ru/blog/how-to-replace-action-helper-in-zf2.html" rel="nofollow">http://zftutorials.ru/blog/how-to-replace-action-helper-in-zf2.html</a></p>
							</section><!-- .comment-content -->

			<div class="reply">
				<a class="comment-reply-link" href="http://www.michaelgallego.fr/blog/2012/10/06/how-to-replace-the-action-helper-in-zf-2-and-make-great-widgetized-content/?replytocom=253#respond" onclick='return addComment.moveForm("comment-253", "253", "respond", "223")'>Répondre</a> <span>↓</span>			</div><!-- .reply -->
		</article><!-- #comment-## -->
	</li>
</ol>
</li>
</ol>
</li>
	<li class="pingback even thread-odd thread-alt depth-1" id="comment-255">
		<p>Ping&nbsp;: <a href="http://zftutorials.ru/blog/how-to-replace-action-helper-in-zf2.html" rel="external nofollow" class="url">Zend Framework Tutorials / Чем заменить хелпер «Action» в ZF2</a> </p>
	</li>
	<li class="comment odd alt thread-even depth-1" id="li-comment-534">
		<article id="comment-534" class="comment">
			<header class="comment-meta comment-author vcard">
				<img id="grav-a85f47c0a231680d2d2d918a5f271136-0" alt="" src="replace_action_plugin_files/a85f47c0a231680d2d2d918a5f271136.png" class="avatar avatar-44 photo grav-hashed grav-hijack" height="44" width="44"><cite class="fn">Igor </cite><a href="http://www.michaelgallego.fr/blog/2012/10/06/how-to-replace-the-action-helper-in-zf-2-and-make-great-widgetized-content/#comment-534"><time datetime="2012-12-07T17:25:09+00:00">7 décembre 2012 à 17 h 25 min</time></a>			</header><!-- .comment-meta -->

			
			<section class="comment-content comment">
				<p>Hello. Could you so kind to see my question on Stackoverflow? <a href="http://stackoverflow.com/questions/13766039/zf2-how-to-pass-parameters-to-forward-plugin-which-i-can-then-get-in-the-method" rel="nofollow">http://stackoverflow.com/questions/13766039/zf2-how-to-pass-parameters-to-forward-plugin-which-i-can-then-get-in-the-method</a></p>
<p>I can’t get how to pass parameters with the forward method.<br>
Thank you.</p>
							</section><!-- .comment-content -->

			<div class="reply">
				<a class="comment-reply-link" href="http://www.michaelgallego.fr/blog/2012/10/06/how-to-replace-the-action-helper-in-zf-2-and-make-great-widgetized-content/?replytocom=534#respond" onclick='return addComment.moveForm("comment-534", "534", "respond", "223")'>Répondre</a> <span>↓</span>			</div><!-- .reply -->
		</article><!-- #comment-## -->
	</li>
	<li class="comment even thread-odd thread-alt depth-1" id="li-comment-579">
		<article id="comment-579" class="comment">
			<header class="comment-meta comment-author vcard">
				<img id="grav-428d0b7ba2b58e8d5a996fc7342142b2-0" alt="" src="replace_action_plugin_files/428d0b7ba2b58e8d5a996fc7342142b2.jpeg" class="avatar avatar-44 photo grav-hashed grav-hijack" height="44" width="44"><cite class="fn"><a href="http://www.tech-licious.com/" rel="external nofollow" class="url">Umair Abid</a> </cite><a href="http://www.michaelgallego.fr/blog/2012/10/06/how-to-replace-the-action-helper-in-zf-2-and-make-great-widgetized-content/#comment-579"><time datetime="2012-12-19T12:35:28+00:00">19 décembre 2012 à 12 h 35 min</time></a>			</header><!-- .comment-meta -->

			
			<section class="comment-content comment">
				<p>Their is a  hole in teh approach while adding a child in the 
viewModel. If the action of the child view model also returns a view 
model. Than this approach generated an error :/</p>
							</section><!-- .comment-content -->

			<div class="reply">
				<a class="comment-reply-link" href="http://www.michaelgallego.fr/blog/2012/10/06/how-to-replace-the-action-helper-in-zf-2-and-make-great-widgetized-content/?replytocom=579#respond" onclick='return addComment.moveForm("comment-579", "579", "respond", "223")'>Répondre</a> <span>↓</span>			</div><!-- .reply -->
		</article><!-- #comment-## -->
	</li>
	<li class="comment odd alt thread-even depth-1" id="li-comment-823">
		<article id="comment-823" class="comment">
			<header class="comment-meta comment-author vcard">
				<img id="grav-7ddd7b6f25eb5d8120ae35e54883fad0-0" alt="" src="replace_action_plugin_files/7ddd7b6f25eb5d8120ae35e54883fad0.png" class="avatar avatar-44 photo grav-hashed grav-hijack" height="44" width="44"><cite class="fn"><a href="http://www.w2b.pl/" rel="external nofollow" class="url">Maciek</a> </cite><a href="http://www.michaelgallego.fr/blog/2012/10/06/how-to-replace-the-action-helper-in-zf-2-and-make-great-widgetized-content/#comment-823"><time datetime="2013-03-26T08:43:39+00:00">26 mars 2013 à 8 h 43 min</time></a>			</header><!-- .comment-meta -->

			
			<section class="comment-content comment">
				<p>I used viewHelper solution in zf1.  ViewHelpers are lightweigt, 
and this is nice.  Second step was, wrtie my own class with additional 
functionality, separete view, some usefule metods like getParam:), init,
 cache, and i realized that my view helper became small 
ActionController:) Most of all code was placed in view helpers not in 
controllers. Controllers was only for routing purpose. It works, its 
simple, its fast, but is it correct aproach?</p>
							</section><!-- .comment-content -->

			<div class="reply">
				<a class="comment-reply-link" href="http://www.michaelgallego.fr/blog/2012/10/06/how-to-replace-the-action-helper-in-zf-2-and-make-great-widgetized-content/?replytocom=823#respond" onclick='return addComment.moveForm("comment-823", "823", "respond", "223")'>Répondre</a> <span>↓</span>			</div><!-- .reply -->
		</article><!-- #comment-## -->
	</li>
		</ol><!-- .commentlist -->

		
		
	
									<div id="respond">
				<h3 id="reply-title">Laisser un commentaire <small><a rel="nofollow" id="cancel-comment-reply-link" href="http://www.michaelgallego.fr/blog/2012/10/06/how-to-replace-the-action-helper-in-zf-2-and-make-great-widgetized-content/#respond" style="display:none;">Annuler la réponse.</a></small></h3>
									<form action="http://www.michaelgallego.fr/blog/wp-comments-post.php" method="post" id="commentform">
																			<p class="comment-notes">Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec <span class="required">*</span></p>							<p class="comment-form-author"><label for="author">Nom <span class="required">*</span></label> <input id="author" name="author" size="30" aria-required="true" type="text"></p>
<p class="comment-form-email"><label for="email">Adresse de contact <span class="required">*</span></label> <input id="email" name="email" size="30" aria-required="true" type="text"></p>
<p class="comment-form-url"><label for="url">Site web</label><input id="url" name="url" size="30" type="text"></p>
												<div id="wp-comment-wrap" class="wp-core-ui wp-editor-wrap tmce-active"><link rel="stylesheet" id="editor-buttons-css" href="replace_action_plugin_files/editor.css" type="text/css" media="all">
<div id="wp-comment-editor-tools" class="wp-editor-tools hide-if-no-js"><a id="comment-html" class="wp-switch-editor switch-html" onclick="switchEditors.switchto(this);">Texte</a>
<a id="comment-tmce" class="wp-switch-editor switch-tmce" onclick="switchEditors.switchto(this);">Visuel</a>
</div>
<div id="wp-comment-editor-container" class="wp-editor-container"><div class="quicktags-toolbar" id="qt_comment_toolbar"><input id="qt_comment_strong" accesskey="b" class="ed_button" title="" value="b" type="button"><input id="qt_comment_em" accesskey="i" class="ed_button" title="" value="i" type="button"><input id="qt_comment_link" accesskey="a" class="ed_button" title="" value="link" type="button"><input id="qt_comment_block" accesskey="q" class="ed_button" title="" value="b-quote" type="button"><input id="qt_comment_del" accesskey="d" class="ed_button" title="" value="del" type="button"><input id="qt_comment_ins" accesskey="s" class="ed_button" title="" value="ins" type="button"><input id="qt_comment_img" accesskey="m" class="ed_button" title="" value="img" type="button"><input id="qt_comment_ul" accesskey="u" class="ed_button" title="" value="ul" type="button"><input id="qt_comment_ol" accesskey="o" class="ed_button" title="" value="ol" type="button"><input id="qt_comment_li" accesskey="l" class="ed_button" title="" value="li" type="button"><input id="qt_comment_code" accesskey="c" class="ed_button" title="" value="code" type="button"><input id="qt_comment_more" accesskey="t" class="ed_button" title="" value="more" type="button"><input id="qt_comment_spell" class="ed_button" title="Recherche dans le dictionnaire" value="dictionnaire" type="button"><input id="qt_comment_close" class="ed_button" title="Fermer toutes les balises ouvertes" value="fermer les balises" type="button"><input id="qt_comment_crayon_quicktag" class="ed_button" title="" value="crayon" type="button"></div><textarea aria-hidden="true" style="display: none;" class="wp-editor-area" rows="20" cols="40" name="comment" id="comment"></textarea><span class="mceEditor wp_themeSkin" id="comment_parent" aria-labelledby="comment_voice" role="application"><span id="comment_voice" style="display:none;" class="mceVoiceLabel">Zone de texte enrichi</span><table style="width: 100%; height: 444px;" class="mceLayout" id="comment_tbl" role="presentation" cellpadding="0" cellspacing="0"><tbody><tr class="mceFirst" role="presentation"><td role="toolbar" class="mceToolbar mceLeft mceFirst mceLast"><div tabindex="-1" id="comment_toolbargroup" role="group" aria-labelledby="comment_toolbargroup_voice"><span role="application"><span id="comment_toolbargroup_voice" class="mceVoiceLabel" style="display:none;">Barre d&amp;rsquo;outils</span><table aria-pressed="false" aria-disabled="false" id="comment_toolbar1" class="mceToolbar mceToolbarRow1 Enabled" role="presentation" tabindex="-1" cellpadding="0" cellspacing="0" align=""><tbody><tr><td class="mceToolbarStart mceToolbarStartButton mceFirst"><span><!-- IE --></span></td><td style="position: relative"><a tabindex="-1" role="button" id="comment_bold" href="javascript:;" class="mceButton mceButtonEnabled mce_bold" onmousedown="return false;" onclick="return false;" aria-labelledby="comment_bold_voice" title="Gras (Ctrl + B)"><span class="mceIcon mce_bold"></span><span class="mceVoiceLabel mceIconOnly" style="display: none;" id="comment_bold_voice">Gras (Ctrl + B)</span></a></td><td style="position: relative"><a tabindex="-1" role="button" id="comment_italic" href="javascript:;" class="mceButton mceButtonEnabled mce_italic" onmousedown="return false;" onclick="return false;" aria-labelledby="comment_italic_voice" title="Italique (Ctrl + I)"><span class="mceIcon mce_italic"></span><span class="mceVoiceLabel mceIconOnly" style="display: none;" id="comment_italic_voice">Italique (Ctrl + I)</span></a></td><td style="position: relative"><a tabindex="-1" role="button" id="comment_strikethrough" href="javascript:;" class="mceButton mceButtonEnabled mce_strikethrough" onmousedown="return false;" onclick="return false;" aria-labelledby="comment_strikethrough_voice" title="Barrer (Alt + Maj. + D)"><span class="mceIcon mce_strikethrough"></span><span class="mceVoiceLabel mceIconOnly" style="display: none;" id="comment_strikethrough_voice">Barrer (Alt + Maj. + D)</span></a></td><td style="position: relative"><a aria-pressed="false" tabindex="-1" role="button" id="comment_bullist" href="javascript:;" class="mceButton mceButtonEnabled mce_bullist" onmousedown="return false;" onclick="return false;" aria-labelledby="comment_bullist_voice" title="Liste non ordonnée (Alt + Shift + U)"><span class="mceIcon mce_bullist"></span><span class="mceVoiceLabel mceIconOnly" style="display: none;" id="comment_bullist_voice">Liste non ordonnée (Alt + Shift + U)</span></a></td><td style="position: relative"><a aria-pressed="false" tabindex="-1" role="button" id="comment_numlist" href="javascript:;" class="mceButton mceButtonEnabled mce_numlist" onmousedown="return false;" onclick="return false;" aria-labelledby="comment_numlist_voice" title="Liste ordonnée (Alt + Maj. + O)"><span class="mceIcon mce_numlist"></span><span class="mceVoiceLabel mceIconOnly" style="display: none;" id="comment_numlist_voice">Liste ordonnée (Alt + Maj. + O)</span></a></td><td style="position: relative"><a tabindex="-1" role="button" id="comment_blockquote" href="javascript:;" class="mceButton mceButtonEnabled mce_blockquote" onmousedown="return false;" onclick="return false;" aria-labelledby="comment_blockquote_voice" title="Bloc de citation (Alt + Maj. + Q)"><span class="mceIcon mce_blockquote"></span><span class="mceVoiceLabel mceIconOnly" style="display: none;" id="comment_blockquote_voice">Bloc de citation (Alt + Maj. + Q)</span></a></td><td style="position: relative"><a tabindex="-1" role="button" id="comment_justifyleft" href="javascript:;" class="mceButton mceButtonEnabled mce_justifyleft" onmousedown="return false;" onclick="return false;" aria-labelledby="comment_justifyleft_voice" title="Aligner à gauche (Alt + Maj. + L)"><span class="mceIcon mce_justifyleft"></span><span class="mceVoiceLabel mceIconOnly" style="display: none;" id="comment_justifyleft_voice">Aligner à gauche (Alt + Maj. + L)</span></a></td><td style="position: relative"><a tabindex="-1" role="button" id="comment_justifycenter" href="javascript:;" class="mceButton mceButtonEnabled mce_justifycenter" onmousedown="return false;" onclick="return false;" aria-labelledby="comment_justifycenter_voice" title="Centrer (Alt + Maj. + C)"><span class="mceIcon mce_justifycenter"></span><span class="mceVoiceLabel mceIconOnly" style="display: none;" id="comment_justifycenter_voice">Centrer (Alt + Maj. + C)</span></a></td><td style="position: relative"><a tabindex="-1" role="button" id="comment_justifyright" href="javascript:;" class="mceButton mceButtonEnabled mce_justifyright" onmousedown="return false;" onclick="return false;" aria-labelledby="comment_justifyright_voice" title="Aligner à droite (Alt + Maj. + R)"><span class="mceIcon mce_justifyright"></span><span class="mceVoiceLabel mceIconOnly" style="display: none;" id="comment_justifyright_voice">Aligner à droite (Alt + Maj. + R)</span></a></td><td style="position: relative"><a aria-disabled="true" tabindex="-1" role="button" id="comment_link" href="javascript:;" class="mceButton mce_link mceButtonDisabled" onmousedown="return false;" onclick="return false;" aria-labelledby="comment_link_voice" title="Insérer/modifier un lien (Alt + Shift + A)"><span class="mceIcon mce_link"></span><span class="mceVoiceLabel mceIconOnly" style="display: none;" id="comment_link_voice">Insérer/modifier un lien (Alt + Shift + A)</span></a></td><td style="position: relative"><a aria-disabled="true" tabindex="-1" role="button" id="comment_unlink" href="javascript:;" class="mceButton mce_unlink mceButtonDisabled" onmousedown="return false;" onclick="return false;" aria-labelledby="comment_unlink_voice" title="Défaire le lien (Alt + Maj. + S)"><span class="mceIcon mce_unlink"></span><span class="mceVoiceLabel mceIconOnly" style="display: none;" id="comment_unlink_voice">Défaire le lien (Alt + Maj. + S)</span></a></td><td style="position: relative"><a tabindex="-1" role="button" id="comment_wp_more" href="javascript:;" class="mceButton mceButtonEnabled mce_wp_more" onmousedown="return false;" onclick="return false;" aria-labelledby="comment_wp_more_voice" title="Insérer la balise « More » (Alt + Shift + T)"><span class="mceIcon mce_wp_more"></span><span class="mceVoiceLabel mceIconOnly" style="display: none;" id="comment_wp_more_voice">Insérer la balise « More » (Alt + Shift + T)</span></a></td><td style="position: relative"><div aria-pressed="false" id="comment_spellchecker" role="button" tabindex="-1" aria-labelledby="comment_spellchecker_voice" aria-haspopup="true"><table role="presentation" class="mceSplitButton mceSplitButtonEnabled mce_spellchecker" title="Correcteur d'orthographe (Alt + Maj. + N)" cellpadding="0" cellspacing="0"><tbody><tr><td class="mceFirst"><a role="button" id="comment_spellchecker_action" tabindex="-1" href="javascript:;" class="mceAction mce_spellchecker" onclick="return false;" onmousedown="return false;" title="Correcteur d'orthographe (Alt + Maj. + N)"><span class="mceAction mce_spellchecker"></span><span class="mceVoiceLabel mceIconOnly" id="comment_spellchecker_voice" style="display:none;">Correcteur d'orthographe (Alt + Maj. + N)</span></a></td><td class="mceLast"><a role="button" id="comment_spellchecker_open" tabindex="-1" href="javascript:;" class="mceOpen mce_spellchecker" onclick="return false;" onmousedown="return false;" title="Correcteur d'orthographe (Alt + Maj. + N)"><span class="mceOpen mce_spellchecker"><span style="display:none;" class="mceIconOnly" aria-hidden="true">▼</span></span></a></td></tr></tbody></table></div></td><td style="position: relative"><a aria-pressed="false" tabindex="-1" role="button" id="comment_fullscreen" href="javascript:;" class="mceButton mceButtonEnabled mce_fullscreen" onmousedown="return false;" onclick="return false;" aria-labelledby="comment_fullscreen_voice" title="Basculer en mode plein écran (Alt + Maj. + G)"><span class="mceIcon mce_fullscreen"></span><span class="mceVoiceLabel mceIconOnly" style="display: none;" id="comment_fullscreen_voice">Basculer en mode plein écran (Alt + Maj. + G)</span></a></td><td style="position: relative"><a tabindex="-1" role="button" id="comment_wp_adv" href="javascript:;" class="mceButton mceButtonEnabled mce_wp_adv" onmousedown="return false;" onclick="return false;" aria-labelledby="comment_wp_adv_voice" title="Afficher/cacher les options avancées (Alt + Shift + Z)"><span class="mceIcon mce_wp_adv"></span><span class="mceVoiceLabel mceIconOnly" style="display: none;" id="comment_wp_adv_voice">Afficher/cacher les options avancées (Alt + Shift + Z)</span></a></td><td style="position: relative"><span class="mceSeparator" role="separator" aria-orientation="vertical" tabindex="-1"></span></td><td style="position: relative"><a tabindex="-1" role="button" id="comment_crayon_tinymce" href="javascript:;" class="mceButton mceButtonEnabled mce_crayon_tinymce" onmousedown="return false;" onclick="return false;" aria-labelledby="comment_crayon_tinymce_voice" title="Ajouter un code Crayon"><span class="mceIcon mce_crayon_tinymce"></span><span class="mceVoiceLabel mceIconOnly" style="display: none;" id="comment_crayon_tinymce_voice"></span></a></td><td class="mceToolbarEnd mceToolbarEndButton mceLast"><span><!-- IE --></span></td></tr></tbody></table><table style="display: none;" aria-pressed="false" aria-disabled="false" id="comment_toolbar2" class="mceToolbar mceToolbarRow2 Enabled" role="presentation" tabindex="-1" cellpadding="0" cellspacing="0" align=""><tbody><tr><td class="mceToolbarStart mceToolbarStartListBox mceFirst"><span><!-- IE --></span></td><td style="position: relative"><span role="listbox" aria-haspopup="true" aria-labelledby="comment_formatselect_voiceDesc" aria-describedby="comment_formatselect_voiceDesc"><table aria-valuenow="Paragraphe" role="presentation" tabindex="-1" id="comment_formatselect" class="mceListBox mceListBoxEnabled mce_formatselect" cellpadding="0" cellspacing="0"><tbody><tr><td class="mceFirst"><span id="comment_formatselect_voiceDesc" class="voiceLabel" style="display:none;">Format - Paragraphe</span><a id="comment_formatselect_text" tabindex="-1" href="javascript:;" class="mceText" onclick="return false;" onmousedown="return false;">Paragraphe</a></td><td class="mceLast"><a id="comment_formatselect_open" tabindex="-1" href="javascript:;" class="mceOpen" onclick="return false;" onmousedown="return false;"><span><span style="display:none;" class="mceIconOnly" aria-hidden="true">▼</span></span></a></td></tr></tbody></table></span></td><td class="mceToolbarStart"><span><!-- IE --></span></td><td style="position: relative"><a tabindex="-1" role="button" id="comment_underline" href="javascript:;" class="mceButton mceButtonEnabled mce_underline" onmousedown="return false;" onclick="return false;" aria-labelledby="comment_underline_voice" title="Souligner"><span class="mceIcon mce_underline"></span><span class="mceVoiceLabel mceIconOnly" style="display: none;" id="comment_underline_voice">Souligner</span></a></td><td style="position: relative"><a tabindex="-1" role="button" id="comment_justifyfull" href="javascript:;" class="mceButton mceButtonEnabled mce_justifyfull" onmousedown="return false;" onclick="return false;" aria-labelledby="comment_justifyfull_voice" title="Justifier (Alt + Maj. + S)"><span class="mceIcon mce_justifyfull"></span><span class="mceVoiceLabel mceIconOnly" style="display: none;" id="comment_justifyfull_voice">Justifier (Alt + Maj. + S)</span></a></td><td style="position: relative"><div id="comment_forecolor" role="button" tabindex="-1" aria-labelledby="comment_forecolor_voice" aria-haspopup="true"><table role="presentation" class="mceSplitButton mceSplitButtonEnabled mce_forecolor" title="Sélectionner la couleur du texte" cellpadding="0" cellspacing="0"><tbody><tr><td class="mceFirst"><a role="button" id="comment_forecolor_action" tabindex="-1" href="javascript:;" class="mceAction mce_forecolor" onclick="return false;" onmousedown="return false;" title="Sélectionner la couleur du texte"><span class="mceAction mce_forecolor"></span><span class="mceVoiceLabel mceIconOnly" id="comment_forecolor_voice" style="display:none;">Sélectionner la couleur du texte</span><div style="background-color: rgb(136, 136, 136);" class="mceColorPreview" id="comment_forecolor_preview"></div></a></td><td class="mceLast"><a role="button" id="comment_forecolor_open" tabindex="-1" href="javascript:;" class="mceOpen mce_forecolor" onclick="return false;" onmousedown="return false;" title="Sélectionner la couleur du texte"><span class="mceOpen mce_forecolor"><span style="display:none;" class="mceIconOnly" aria-hidden="true">▼</span></span></a></td></tr></tbody></table></div></td><td style="position: relative"><a tabindex="-1" role="button" id="comment_pastetext" href="javascript:;" class="mceButton mceButtonEnabled mce_pastetext" onmousedown="return false;" onclick="return false;" aria-labelledby="comment_pastetext_voice" title="Coller du texte simple"><span class="mceIcon mce_pastetext"></span><span class="mceVoiceLabel mceIconOnly" style="display: none;" id="comment_pastetext_voice">Coller du texte simple</span></a></td><td style="position: relative"><a tabindex="-1" role="button" id="comment_pasteword" href="javascript:;" class="mceButton mceButtonEnabled mce_pasteword" onmousedown="return false;" onclick="return false;" aria-labelledby="comment_pasteword_voice" title="Coller du texte Word"><span class="mceIcon mce_pasteword"></span><span class="mceVoiceLabel mceIconOnly" style="display: none;" id="comment_pasteword_voice">Coller du texte Word</span></a></td><td style="position: relative"><a tabindex="-1" role="button" id="comment_removeformat" href="javascript:;" class="mceButton mceButtonEnabled mce_removeformat" onmousedown="return false;" onclick="return false;" aria-labelledby="comment_removeformat_voice" title="Enlever la mise en forme"><span class="mceIcon mce_removeformat"></span><span class="mceVoiceLabel mceIconOnly" style="display: none;" id="comment_removeformat_voice">Enlever la mise en forme</span></a></td><td style="position: relative"><a tabindex="-1" role="button" id="comment_charmap" href="javascript:;" class="mceButton mceButtonEnabled mce_charmap" onmousedown="return false;" onclick="return false;" aria-labelledby="comment_charmap_voice" title="Insérer un caractère particulier"><span class="mceIcon mce_charmap"></span><span class="mceVoiceLabel mceIconOnly" style="display: none;" id="comment_charmap_voice">Insérer un caractère particulier</span></a></td><td style="position: relative"><a aria-disabled="true" tabindex="-1" role="button" id="comment_outdent" href="javascript:;" class="mceButton mce_outdent mceButtonDisabled" onmousedown="return false;" onclick="return false;" aria-labelledby="comment_outdent_voice" title="Désindenter"><span class="mceIcon mce_outdent"></span><span class="mceVoiceLabel mceIconOnly" style="display: none;" id="comment_outdent_voice">Désindenter</span></a></td><td style="position: relative"><a tabindex="-1" role="button" id="comment_indent" href="javascript:;" class="mceButton mceButtonEnabled mce_indent" onmousedown="return false;" onclick="return false;" aria-labelledby="comment_indent_voice" title="Indenter"><span class="mceIcon mce_indent"></span><span class="mceVoiceLabel mceIconOnly" style="display: none;" id="comment_indent_voice">Indenter</span></a></td><td style="position: relative"><a aria-disabled="true" tabindex="-1" role="button" id="comment_undo" href="javascript:;" class="mceButton mce_undo mceButtonDisabled" onmousedown="return false;" onclick="return false;" aria-labelledby="comment_undo_voice" title="Annuler (Ctrl + Z)"><span class="mceIcon mce_undo"></span><span class="mceVoiceLabel mceIconOnly" style="display: none;" id="comment_undo_voice">Annuler (Ctrl + Z)</span></a></td><td style="position: relative"><a aria-disabled="true" tabindex="-1" role="button" id="comment_redo" href="javascript:;" class="mceButton mce_redo mceButtonDisabled" onmousedown="return false;" onclick="return false;" aria-labelledby="comment_redo_voice" title="Rétablir (Ctrl + Y)"><span class="mceIcon mce_redo"></span><span class="mceVoiceLabel mceIconOnly" style="display: none;" id="comment_redo_voice">Rétablir (Ctrl + Y)</span></a></td><td style="position: relative"><a tabindex="-1" role="button" id="comment_wp_help" href="javascript:;" class="mceButton mceButtonEnabled mce_wp_help" onmousedown="return false;" onclick="return false;" aria-labelledby="comment_wp_help_voice" title="Aide (Alt + Maj. + H)"><span class="mceIcon mce_wp_help"></span><span class="mceVoiceLabel mceIconOnly" style="display: none;" id="comment_wp_help_voice">Aide (Alt + Maj. + H)</span></a></td><td class="mceToolbarEnd mceToolbarEndButton mceLast"><span><!-- IE --></span></td></tr></tbody></table></span></div><a href="#" accesskey="z" title="Aller aux boutons d&amp;rsquo;outils - Alt+Q&amp;nbsp;; Aller à l&amp;rsquo;éditeur - Alt-Z&amp;nbsp;; Aller au chemin de l&amp;rsquo;élément - Alt-X" onfocus="tinyMCE.getInstanceById('comment').focus();"><!-- IE --></a></td></tr><tr><td class="mceIframeContainer mceFirst mceLast"><iframe style="width: 100%; height: 405px; display: block;" title="Zone de texte enrichiAppuyez sur Alt + F10 pour la barre d&amp;rsquo;outils. Appuyez sur Alt + 0 pour l&amp;rsquo;aide." allowtransparency="true" src='javascript:""' id="comment_ifr" frameborder="0"></iframe></td></tr><tr class="mceLast"><td class="mceStatusbar mceFirst mceLast"><div tabindex="-1" aria-labelledby="comment_path_voice" role="group" id="comment_path_row"><span id="comment_path_voice">Chemin </span><span>: </span><span id="comment_path"><a tabindex="-1" id="_mce_item_13" class="mcePath_0" onmousedown="return false;" role="button" href="javascript:;">p</a></span></div><a tabindex="-1" class="mceResize" onclick="return false;" href="javascript:;" id="comment_resize"></a></td></tr></tbody></table></span></div>
</div>

						<p class="form-allowed-tags">Vous pouvez utiliser ces balises et attributs <abbr title="HyperText Markup Language">HTML</abbr>&nbsp;:  <code>&lt;a
 href="" title=""&gt; &lt;abbr title=""&gt; &lt;acronym title=""&gt; 
&lt;b&gt; &lt;blockquote cite=""&gt; &lt;cite&gt; &lt;code class="" 
title="" data-url=""&gt; &lt;del datetime=""&gt; &lt;em&gt; &lt;i&gt; 
&lt;q cite=""&gt; &lt;strike&gt; &lt;strong&gt; &lt;pre class="" 
title="" data-url=""&gt; &lt;span class="" title="" data-url=""&gt; </code></p>						<p class="form-submit">
							<input name="submit" id="submit" value="Laisser un commentaire" type="submit">
							<input name="comment_post_ID" value="223" id="comment_post_ID" type="hidden">
<input name="comment_parent" id="comment_parent" value="0" type="hidden">
						</p>
						<p style="display: none;"><input id="akismet_comment_nonce" name="akismet_comment_nonce" value="b3e5690430" type="hidden"></p><p class="comment-subscription-form"><input name="subscribe_comments" id="subscribe_comments" value="subscribe" style="width: auto; -moz-appearance: checkbox; -webkit-appearance: checkbox;" type="checkbox"> <label class="subscribe-label" id="subscribe-label" for="subscribe_comments" style="display: inline;">Prévenez moi de tous les nouveaux commentaires par email.</label></p><p class="comment-subscription-form"><input name="subscribe_blog" id="subscribe_blog" value="subscribe" style="width: auto; -moz-appearance: checkbox; -webkit-appearance: checkbox;" type="checkbox"> <label class="subscribe-label" id="subscribe-blog-label" for="subscribe_blog" style="display: inline;">Prévenez moi de tous les nouveaux articles par email.</label></p>					</form>
							</div><!-- #respond -->
						
</div><!-- #comments .comments-area -->
			
		</div><!-- #content -->
	</div><!-- #primary -->


			<div id="secondary" class="widget-area" role="complementary">
			<aside id="archives-3" class="widget widget_archive"><h3 class="widget-title">Archives</h3>		<ul>
			<li><a href="http://www.michaelgallego.fr/blog/2013/03/" title="mars 2013">mars 2013</a></li>
	<li><a href="http://www.michaelgallego.fr/blog/2013/02/" title="février 2013">février 2013</a></li>
	<li><a href="http://www.michaelgallego.fr/blog/2013/01/" title="janvier 2013">janvier 2013</a></li>
	<li><a href="http://www.michaelgallego.fr/blog/2012/12/" title="décembre 2012">décembre 2012</a></li>
	<li><a href="http://www.michaelgallego.fr/blog/2012/11/" title="novembre 2012">novembre 2012</a></li>
	<li><a href="http://www.michaelgallego.fr/blog/2012/10/" title="octobre 2012">octobre 2012</a></li>
	<li><a href="http://www.michaelgallego.fr/blog/2012/07/" title="juillet 2012">juillet 2012</a></li>
	<li><a href="http://www.michaelgallego.fr/blog/2012/03/" title="mars 2012">mars 2012</a></li>
	<li><a href="http://www.michaelgallego.fr/blog/2012/02/" title="février 2012">février 2012</a></li>
	<li><a href="http://www.michaelgallego.fr/blog/2012/01/" title="janvier 2012">janvier 2012</a></li>
	<li><a href="http://www.michaelgallego.fr/blog/2011/12/" title="décembre 2011">décembre 2011</a></li>
	<li><a href="http://www.michaelgallego.fr/blog/2011/10/" title="octobre 2011">octobre 2011</a></li>
	<li><a href="http://www.michaelgallego.fr/blog/2011/09/" title="septembre 2011">septembre 2011</a></li>
	<li><a href="http://www.michaelgallego.fr/blog/2011/08/" title="août 2011">août 2011</a></li>
		</ul>
</aside><aside id="linkcat-2" class="widget widget_links"><h3 class="widget-title">Liens</h3>
	<ul class="xoxo blogroll">
<li><a href="http://www.michaelgallego.fr/blog/wp-admin" title="Espace administrateur">Admin</a></li>

	</ul>
</aside>
		</div><!-- #secondary -->
		</div><!-- #main .wrapper -->
	<footer id="colophon" role="contentinfo">
		<div class="site-info">
						<a href="http://wordpress.org/" title="Plate-forme de publication personnelle à la pointe de la sémantique">Fièrement propulsé par WordPress</a>
		</div><!-- .site-info -->
	</footer><!-- #colophon -->
</div><!-- #page -->

	<div style="display:none">
	<div class="grofile-hash-map-801c564cec899349cf1b98ce264528bc">
	</div>
	<div class="grofile-hash-map-2c3202718f850e5822f31a72b904668e">
	</div>
	<div class="grofile-hash-map-59a5a071e6c747248bcc003b92195566">
	</div>
	<div class="grofile-hash-map-a85f47c0a231680d2d2d918a5f271136">
	</div>
	<div class="grofile-hash-map-428d0b7ba2b58e8d5a996fc7342142b2">
	</div>
	<div class="grofile-hash-map-7ddd7b6f25eb5d8120ae35e54883fad0">
	</div>
	</div>
<link rel="stylesheet" id="wp-jquery-ui-dialog-css" href="replace_action_plugin_files/jquery-ui-dialog.css" type="text/css" media="all">
<script type="text/javascript" src="replace_action_plugin_files/devicepx-jetpack.js"></script>
<script type="text/javascript" src="replace_action_plugin_files/gprofiles.js"></script>
<script type="text/javascript">
/* <![CDATA[ */
var WPGroHo = {"my_hash":""};
/* ]]> */
</script>
<script type="text/javascript" src="replace_action_plugin_files/wpgroho.js"></script>
<script type="text/javascript" src="replace_action_plugin_files/navigation.js"></script>
<script type="text/javascript">
/* <![CDATA[ */
var wordCountL10n = {"type":"w"};
/* ]]> */
</script>
<script type="text/javascript" src="replace_action_plugin_files/word-count.js"></script>
<script type="text/javascript">
/* <![CDATA[ */
var userSettings = {"url":"\/blog\/","uid":"0","time":"1365584173"};
/* ]]> */
</script>
<script type="text/javascript" src="replace_action_plugin_files/utils.js"></script>
<script type="text/javascript" src="replace_action_plugin_files/editor.js"></script>
<script type="text/javascript" src="replace_action_plugin_files/jquery_009.js"></script>
<script type="text/javascript" src="replace_action_plugin_files/jquery_006.js"></script>
<script type="text/javascript" src="replace_action_plugin_files/jquery_004.js"></script>
<script type="text/javascript" src="replace_action_plugin_files/jquery.js"></script>
<script type="text/javascript" src="replace_action_plugin_files/jquery_003.js"></script>
<script type="text/javascript" src="replace_action_plugin_files/jquery_002.js"></script>
<script type="text/javascript" src="replace_action_plugin_files/jquery_007.js"></script>
<script type="text/javascript" src="replace_action_plugin_files/jquery_005.js"></script>
<script type="text/javascript" src="replace_action_plugin_files/wpdialog.js"></script>
<script type="text/javascript">
/* <![CDATA[ */
var wpLinkL10n = {"title":"Ins\u00e9rer\/modifier un lien","update":"Mettre \u00e0 jour","save":"Ajouter un lien","noTitle":"(pas de titre)","noMatchesFound":"Aucune correspondance trouv\u00e9e."};
/* ]]> */
</script>
<script type="text/javascript" src="replace_action_plugin_files/wplink.js"></script>
<script type="text/javascript" src="replace_action_plugin_files/popup.js"></script>

	<script type="text/javascript">
		tinyMCEPreInit = {
			base : "http://www.michaelgallego.fr/blog/wp-includes/js/tinymce",
			suffix : "",
			query : "ver=358-23224",
			mceInit : {'comment':{mode:"exact",width:"100%",theme:"advanced",skin:"wp_theme",language:"fr",spellchecker_languages:"+French=fr,Anglais=en,Danois=da,Néerlandais=nl,Finnois=fi,Allemand=de,Italien=it,Polonais=pl,Portuguais=pt,Espagnol=es,Suédois=sv",theme_advanced_toolbar_location:"top",theme_advanced_toolbar_align:"left",theme_advanced_statusbar_location:"bottom",theme_advanced_resizing:true,theme_advanced_resize_horizontal:false,dialog_type:"modal",formats:{
						alignleft : [
							{selector : 'p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li', styles : {textAlign : 'left'}},
							{selector : 'img,table', classes : 'alignleft'}
						],
						aligncenter : [
							{selector : 'p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li', styles : {textAlign : 'center'}},
							{selector : 'img,table', classes : 'aligncenter'}
						],
						alignright : [
							{selector : 'p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li', styles : {textAlign : 'right'}},
							{selector : 'img,table', classes : 'alignright'}
						],
						strikethrough : {inline : 'del'}
					},relative_urls:false,remove_script_host:false,convert_urls:false,remove_linebreaks:true,gecko_spellcheck:true,fix_list_elements:true,keep_styles:false,entities:"38,amp,60,lt,62,gt",accessibility_focus:true,media_strict:false,paste_remove_styles:true,paste_remove_spans:true,paste_strip_class_attributes:"all",paste_text_use_dialog:true,webkit_fake_resize:false,spellchecker_rpc_url:"http://www.michaelgallego.fr/blog/wp-includes/js/tinymce/plugins/spellchecker/rpc.php",schema:"html5",wpeditimage_disable_captions:false,wp_fullscreen_content_css:"http://www.michaelgallego.fr/blog/wp-includes/js/tinymce/plugins/wpfullscreen/css/wp-fullscreen.css",plugins:"inlinepopups,spellchecker,tabfocus,paste,media,fullscreen,wordpress,wpeditimage,wpgallery,wplink,wpdialogs,-crayon_tinymce",elements:"comment",wpautop:true,apply_source_formatting:false,theme_advanced_buttons1:"bold,italic,strikethrough,bullist,numlist,blockquote,justifyleft,justifycenter,justifyright,link,unlink,wp_more,spellchecker,fullscreen,wp_adv,separator,crayon_tinymce",theme_advanced_buttons2:"formatselect,underline,justifyfull,forecolor,pastetext,pasteword,removeformat,charmap,outdent,indent,undo,redo,wp_help",theme_advanced_buttons3:"",theme_advanced_buttons4:"",tabfocus_elements:":prev,:next",body_class:"comment post-type-post",theme_advanced_resizing_use_cookie:true,extended_valid_elements:"pre[id|name|class|style|lang|line|escaped|highlight|src],pre[*],code[*],iframe[*]"}},
			qtInit : {'comment':{id:"comment",buttons:"strong,em,link,block,del,ins,img,ul,ol,li,code,more,spell,close"}},
			ref : {plugins:"inlinepopups,spellchecker,tabfocus,paste,media,fullscreen,wordpress,wpeditimage,wpgallery,wplink,wpdialogs,-crayon_tinymce",theme:"advanced",language:"fr"},
			load_ext : function(url,lang){var sl=tinymce.ScriptLoader;sl.markDone(url+'/langs/'+lang+'.js');sl.markDone(url+'/langs/'+lang+'_dlg.js');}
		};
	</script>
<script type="text/javascript" src="replace_action_plugin_files/tiny_mce.js"></script>
<script type="text/javascript" src="replace_action_plugin_files/wp-tinymce-schema.js"></script>
<script type="text/javascript">
tinyMCE.addI18n({fr:{"common":{"edit_confirm":"Voulez-vous utiliser le mode WYSIWYG pour ce champ textuel&nbsp;?","apply":"Appliquer","insert":"Ins\u00e9rer","update":"Mettre \u00e0 jour","cancel":"Annuler","close":"Fermer","browse":"Parcourir","class_name":"Classe","not_set":"-- Pas r\u00e9gl\u00e9 --","clipboard_msg":"Le Copier\/Couper\/Coller n&rsquo;est pas disponible dans Mozilla ni Firefox.","clipboard_no_support":"Actuellement pas reconnu par votre navigateur&nbsp;; utiliser les raccourcis-clavier \u00e0 la place.","popup_blocked":"D\u00e9sol\u00e9, mais nous avons remarqu\u00e9 que votre bloqueur de fen\u00eatres pop-up a annul\u00e9 la fen\u00eatre qui apporte certaines fonctionnalit\u00e9s. Vous devrez annuler le blocage de popup pour ce site si vous souhaitez utiliser toutes les fonctions de cet outil.","invalid_data":"ERREUR&nbsp;: certaines valeurs saisies ne sont pas valides, elles sont indiqu\u00e9es en rouge.","invalid_data_number":"{#field} doit \u00eatre un nombre","invalid_data_min":"{#field} doit \u00eatre un nombre plus grand que {#min}","invalid_data_size":"{#field} doit \u00eatre un nombre ou un pourcentage","more_colors":"Plus de couleurs"},"colors":{"000000":"Noir","993300":"Orange fonc\u00e9","333300":"Olive fonc\u00e9","003300":"Vert fonc\u00e9","003366":"Azur fonc\u00e9","000080":"Bleu marine","333399":"Bleu indigo","333333":"Gris fonc\u00e9","800000":"Rouge bordeaux","FF6600":"Orange","808000":"Vert olive","008000":"Vert","008080":"Turquoise (bleu-vert)","0000FF":"Bleu","666699":"Bleu gris\u00e9","808080":"Gris","FF0000":"Rouge","FF9900":"Ambre","99CC00":"Jaune-vert","339966":"Vert de mer","33CCCC":"Turquoise","3366FF":"Bleu roi","800080":"Violet","999999":"Gris moyen","FF00FF":"Bleur magenta","FFCC00":"Or","FFFF00":"Jaune","00FF00":"Lime (vert citron)","00FFFF":"Aqua","00CCFF":"Bleu ciel","993366":"Marron","C0C0C0":"Argent","FF99CC":"Rose","FFCC99":"P\u00e8che","FFFF99":"Jaune clair","CCFFCC":"Vert clair","CCFFFF":"Cyan","99CCFF":"Bleu ciel clair","CC99FF":"Prune","FFFFFF":"Blanc"},"contextmenu":{"align":"Alignement","left":"Gauche","center":"Centre","right":"Droite","full":"Complet"},"insertdatetime":{"date_fmt":"%Y-%m-%d","time_fmt":"%H h %M min %S s","insertdate_desc":"Ins\u00e9rer la date","inserttime_desc":"Ins\u00e9rer l&rsquo;heure","months_long":"janvier,f\u00e9vrier,mars,avril,mai,juin,juillet,ao\u00fbt,septembre,octobre,novembre,d\u00e9cembre","months_short":"jan,f\u00e9v,mar,avr,mai,juin,juil,ao\u00fbt,sept,oct,nov,d\u00e9c","day_long":"Dimanche,Lundi,Mardi,Mercredi,Jeudi,Vendredi,Samedi","day_short":"dim,lun,mar,mer,jeu,ven,sam"},"print":{"print_desc":"Imprimer"},"preview":{"preview_desc":"Aper\u00e7u"},"directionality":{"ltr_desc":"Direction de gauche \u00e0 droite","rtl_desc":"Direction de droite \u00e0 gauche"},"layer":{"insertlayer_desc":"Ins\u00e9rer un nouveau calque","forward_desc":"Avancer","backward_desc":"Reculer","absolute_desc":"Modifier le positionnement absolu","content":"Nouvelle couche&hellip;"},"save":{"save_desc":"Enregistrer","cancel_desc":"Annuler toutes les modifications"},"nonbreaking":{"nonbreaking_desc":"Ins\u00e9rer un espace ins\u00e9cable"},"iespell":{"iespell_desc":"Lancer le correcteur d&rsquo;orthographe","download":"ieSpell n&rsquo;a pas \u00e9t\u00e9 d\u00e9tect\u00e9. Voulez-vous l&rsquo;installer maintenant&nbsp;?"},"advhr":{"advhr_desc":"R\u00e8gle horizontale"},"emotions":{"emotions_desc":"\u00c9motions"},"searchreplace":{"search_desc":"Chercher","replace_desc":"Chercher\/Remplacer"},"advimage":{"image_desc":"Ins\u00e9rer\/modifier une image"},"advlink":{"link_desc":"Ins\u00e9rer\/modifier un lien"},"xhtmlxtras":{"cite_desc":"Citation","abbr_desc":"Abr\u00e9viation","acronym_desc":"Acronyme","del_desc":"Coupure","ins_desc":"Insertion","attribs_desc":"Ins\u00e9rer\/modider des attributs"},"style":{"desc":"Modifier le style CSS"},"paste":{"paste_text_desc":"Coller du texte simple","paste_word_desc":"Coller du texte Word","selectall_desc":"Tout s\u00e9lectionner","plaintext_mode_sticky":"Le copier\/coller est maintenant en mode &laquo;&nbsp;texte brut&nbsp;&raquo;. Cliquez de nouveau pour retourner au mode normal. Apr\u00e8s avoir coll\u00e9 votre contenu, le r\u00e9glage reviendra au mode normal.","plaintext_mode":"Le copier\/coller est maintenant en mode &laquo;&nbsp;texte brut&nbsp;&raquo;. Cliquez de nouveau pour retourner au mode normal."},"paste_dlg":{"text_title":"Utilisez Ctrl-V sur votre clavier pour coller le texte dans la fen\u00eatre.","text_linebreaks":"Conserver les sauts de ligne","word_title":"Utilisez Ctrl-V sur votre clavier pour coller le texte dans la fen\u00eatre."},"table":{"desc":"Ins\u00e9rer une nouvelle table","row_before_desc":"Ins\u00e9rer une ligne avant","row_after_desc":"Ins\u00e9rer une ligne apr\u00e8s","delete_row_desc":"Supprimer la ligne","col_before_desc":"Ins\u00e9rer une colonne avant","col_after_desc":"Ins\u00e9rer une colonne apr\u00e8s","delete_col_desc":"Enlever la colonne","split_cells_desc":"Scinder les cellules fusionn\u00e9es du tableau","merge_cells_desc":"Fusionner les cellules du tableau","row_desc":"Propri\u00e9t\u00e9s de la ligne du tableau","cell_desc":"Propri\u00e9t\u00e9s de la cellule du tableau","props_desc":"Propri\u00e9t\u00e9s du tableau","paste_row_before_desc":"Coller la ligne du tableau avant","paste_row_after_desc":"Coller la ligne du tableau apr\u00e8s","cut_row_desc":"Couper la ligne du tableau","copy_row_desc":"Copier la ligne du tableau","del":"Supprimer le tableau","row":"Ligne","col":"Colonne","cell":"Cellule"},"autosave":{"unload_msg":"Les modifications que vous avez faites seront perdues si vous changez de page."},"fullscreen":{"desc":"Basculer en mode plein \u00e9cran (Alt + Maj. + G)"},"media":{"desc":"Ins\u00e9rer \/ modifier un m\u00e9dia","edit":"Modifier le m\u00e9dia ins\u00e9r\u00e9"},"fullpage":{"desc":"Propri\u00e9t\u00e9s du document"},"template":{"desc":"Ins\u00e9rer le contenu d&rsquo;un mod\u00e8le pr\u00e9d\u00e9fini"},"visualchars":{"desc":"Activer les caract\u00e8res de mise en page."},"spellchecker":{"desc":"Correcteur d'orthographe (Alt + Maj. + N)","menu":"R\u00e9glages du correcteur d&rsquo;orthographe","ignore_word":"Ignorer le mot","ignore_words":"Ignorer tout","langs":"Langues","wait":"Veuillez patienter&hellip;","sug":"Suggestions","no_sug":"Aucune suggestion","no_mpell":"Aucune erreur trouv\u00e9e.","learn_word":"Retenir ce mot"},"pagebreak":{"desc":"Ins\u00e9rer la balise Page break"},"advlist":{"types":"Types","def":"Valeur par d\u00e9faut","lower_alpha":"Lettres minuscules","lower_greek":"Lettres grecques minuscules","lower_roman":"Chiffres romains minuscules","upper_alpha":"Lettres majuscules","upper_roman":"Chiffres romains majuscules","circle":"Cercle","disc":"Disque","square":"Carr\u00e9"},"aria":{"rich_text_area":"Zone de texte enrichi"},"wordcount":{"words":"Mots&nbsp;:"}}});
tinyMCE.addI18n("fr.advanced", {"style_select":"Styles","font_size":"Taille de police","fontdefault":"Famille des polices","block":"Format","paragraph":"Paragraphe","div":"Div","address":"Adresse","pre":"Pr\u00e9-format\u00e9","h1":"Titre 1","h2":"Titre 2","h3":"Titre 3","h4":"Titre 4","h5":"Titre 5","h6":"Titre 6","blockquote":"Bloc de citation","code":"Code","samp":"Exemple de code","dt":"Terme de d\u00e9finition","dd":"Description de la d\u00e9finition","bold_desc":"Gras (Ctrl + B)","italic_desc":"Italique (Ctrl + I)","underline_desc":"Souligner","striketrough_desc":"Barrer (Alt + Maj. + D)","justifyleft_desc":"Aligner \u00e0 gauche (Alt + Maj. + L)","justifycenter_desc":"Centrer (Alt + Maj. + C)","justifyright_desc":"Aligner \u00e0 droite (Alt + Maj. + R)","justifyfull_desc":"Justifier (Alt + Maj. + S)","bullist_desc":"Liste non ordonn\u00e9e (Alt + Shift + U)","numlist_desc":"Liste ordonn\u00e9e (Alt + Maj. + O)","outdent_desc":"D\u00e9sindenter","indent_desc":"Indenter","undo_desc":"Annuler (Ctrl + Z)","redo_desc":"R\u00e9tablir (Ctrl + Y)","link_desc":"Ins\u00e9rer\/modifier un lien (Alt + Shift + A)","unlink_desc":"D\u00e9faire le lien (Alt + Maj. + S)","image_desc":"Ins\u00e9rer\/modifier une image (Alt + Shift + M)","cleanup_desc":"Nettoyer le mauvais code","code_desc":"Modifier le code source HTML","sub_desc":"Indice","sup_desc":"Exposant","hr_desc":"Ins\u00e9rer une r\u00e8gle horizontale","removeformat_desc":"Enlever la mise en forme","forecolor_desc":"S\u00e9lectionner la couleur du texte","backcolor_desc":"S\u00e9lectionner la couleur du fond","charmap_desc":"Ins\u00e9rer un caract\u00e8re particulier","visualaid_desc":"Afficher les lignes\/\u00e9l\u00e9ments invisibles","anchor_desc":"Ins\u00e9rer\/modifier un lien interne","cut_desc":"Couper","copy_desc":"Copier","paste_desc":"Coller","image_props_desc":"Propri\u00e9t\u00e9s de l&rsquo;image","newdocument_desc":"Nouveau document","help_desc":"Aide","blockquote_desc":"Bloc de citation (Alt + Maj. + Q)","clipboard_msg":"Le Copier\/Couper\/Coller n&rsquo;est pas disponible dans Mozilla ni Firefox.","path":"Chemin ","newdocument":" Voulez-vous vraiment supprimer tout le contenu&nbsp;?","toolbar_focus":"Aller aux boutons d&rsquo;outils - Alt+Q&nbsp;; Aller \u00e0 l&rsquo;\u00e9diteur - Alt-Z&nbsp;; Aller au chemin de l&rsquo;\u00e9l\u00e9ment - Alt-X","more_colors":"Plus de couleurs","shortcuts_desc":"Aide \u00e0 propos de l&rsquo;accessibilit\u00e9","help_shortcut":"Appuyez sur Alt + F10 pour la barre d&rsquo;outils. Appuyez sur Alt + 0 pour l&rsquo;aide.","rich_text_area":"Zone de texte enrichi","toolbar":"Barre d&rsquo;outils"});
tinyMCE.addI18n("fr.advanced_dlg", {"about_title":"\u00c0 propos de TinyMCE","about_general":"\u00c0 propos","about_help":"Aide","about_license":"Licence","about_plugins":"Extensions","about_plugin":"Extension","about_author":"Auteur","about_version":"Version","about_loaded":"Extensions charg\u00e9es","anchor_title":"Ins\u00e9rer\/modifier un lien interne","anchor_name":"Nom du lien interne","code_title":"\u00c9diteur de source HTML","code_wordwrap":"Retour \u00e0 la ligne","colorpicker_title":"S\u00e9lectionnez une couleur","colorpicker_picker_tab":"S\u00e9lecteur","colorpicker_picker_title":"S\u00e9lecteur de couleur","colorpicker_palette_tab":"Palette","colorpicker_palette_title":"Couleurs de la palette","colorpicker_named_tab":"Par nom","colorpicker_named_title":"Couleurs nomm\u00e9es","colorpicker_color":"Couleur&nbsp;:","colorpicker_name":"Nom&nbsp;:","charmap_title":"S\u00e9lectionnez un caract\u00e8re","charmap_usage":"Utilisez les fl\u00e8ches gauche et droite pour naviguer.","image_title":"Ins\u00e9rer\/modifier une image","image_src":"Adresse web de l&rsquo;image","image_alt":"Description de l&rsquo;image","image_list":"Liste d&rsquo;image","image_border":"Bordure","image_dimensions":"Dimensions","image_vspace":"Espace vertical","image_hspace":"Espace horizontal","image_align":"Alignement","image_align_baseline":"Slogan","image_align_top":"Haut","image_align_middle":"Milieu","image_align_bottom":"Bas","image_align_texttop":"Haut du texte","image_align_textbottom":"Bas du texte","image_align_left":"Gauche","image_align_right":"Droite","link_title":"Ins\u00e9rer\/modifier un lien","link_url":"Cible du lien","link_target":"Cible","link_target_same":"Fen\u00eatre courante","link_target_blank":"Nouvelle fen\u00eatre","link_titlefield":"Titre","link_is_email":"L&rsquo;adresse web que vous avez entr\u00e9e semble \u00eatre une adresse de messagerie&nbsp;&nbsp;; voulez-vous y ajouter le pr\u00e9fixe &laquo; mailto: &raquo; requis&nbsp;?","link_is_external":"L&rsquo;adresse web que vous avez entr\u00e9e semble \u00eatre un lien externe&nbsp;; voulez-vous ajouter le pr\u00e9fixe &laquo; http:\/\/ &raquo; requis&nbsp;?","link_list":"Liste de liens","accessibility_help":"Aide \u00e0 propos de l&rsquo;accessibilit\u00e9","accessibility_usage_title":"Utilisation g\u00e9n\u00e9rale"});
tinyMCE.addI18n("fr.media_dlg", {"title":"Ins\u00e9rer \/ modifier un m\u00e9dia","general":"G\u00e9n\u00e9ral","advanced":"Avanc\u00e9","file":"Fichier\/Adresse web","list":"Liste","size":"Dimensions","preview":"Aper\u00e7u","constrain_proportions":"Respecter les proportions","type":"Type","id":"Id","name":"Nom","class_name":"Classe","vspace":"V-Space","hspace":"H-Space","play":"Lecture automatique","loop":"R\u00e9p\u00e9ter","menu":"Afficher le menu","quality":"Qualit\u00e9","scale":"Appliquer","align":"Alignement","salign":"SAlignement","wmode":"WMode","bgcolor":"Arri\u00e8re-plan","base":"Base","flashvars":"Variables Flash","liveconnect":"SWLiveConnect","autohref":"AutoHREF","cache":"M\u00e9moire cache","hidden":"Cach\u00e9","controller":"Contr\u00f4leur","kioskmode":"Mode kiosque","playeveryframe":"Jouer toutes les images","targetcache":"Cache cible","correction":"Pas de correction","enablejavascript":"Activer JavaScript","starttime":"Temps de d\u00e9but","endtime":"Temps de fin","href":"href","qtsrcchokespeed":"Vitesse de d\u00e9roulement","target":"Cible","volume":"Volume","autostart":"D\u00e9marrage automatique","enabled":"Activ\u00e9","fullscreen":"Plein \u00e9cran","invokeurls":"Lancer les adresses web","mute":"Muet","stretchtofit":"Redimensionner","windowlessvideo":"Vid\u00e9o sans fen\u00eatre","balance":"Balance","baseurl":"Adresse web de base","captioningid":"Id du sous-titre","currentmarker":"Marqueur actuel","currentposition":"Position actuelle","defaultframe":"Frame par d\u00e9faut","playcount":"Nombre de lectures","rate":"Notation","uimode":"Mode UI","flash_options":"Options Flash","qt_options":"Options de Quicktime","wmp_options":"Options Windows Media Player","rmp_options":"Option Real Media Player","shockwave_options":"Options de Shockwave","autogotourl":"Lancer automatiquement les adresses web","center":"Centre","imagestatus":"Statut de l&rsquo;image","maintainaspect":"Maintenir l&rsquo;aspect","nojava":"Pas de Java","prefetch":"Pr\u00e9chargement","shuffle":"Al\u00e9atoire","console":"Console","numloop":"Nombre de boucles","controls":"Contr\u00f4les","scriptcallbacks":"Rappels de script","swstretchstyle":"Style d&rsquo;\u00e9tirement","swstretchhalign":"\u00c9tirement horizontal","swstretchvalign":"\u00c9tirement vertical","sound":"Son","progress":"Progression","qtsrc":"Source du QuickTime","qt_stream_warn":"Les flux RTSP (streaming) devraient \u00eatre ajout\u00e9s au champ &laquo; Source du QuickTime &raquo; dans l&rsquo;onglet Avanc\u00e9.","align_top":"Haut","align_right":"Droite","align_bottom":"Bas","align_left":"Gauche","align_center":"Centre","align_top_left":"Haut gauche","align_top_right":"En haut \u00e0 droite","align_bottom_left":"Bas gauche","align_bottom_right":"Bas droite","flv_options":"Options de vid\u00e9o de Flash","flv_scalemode":"Mode d&rsquo;\u00e9tirement","flv_buffer":"Tampon","flv_startimage":"Image de d\u00e9part","flv_starttime":"Temps de d\u00e9but","flv_defaultvolume":"Volume par d\u00e9faut","flv_hiddengui":"Interface cach\u00e9e","flv_autostart":"D\u00e9marrage automatique","flv_loop":"R\u00e9p\u00e9ter","flv_showscalemodes":"Montrer les diff\u00e9rentes \u00e9chelles","flv_smoothvideo":"Vid\u00e9o continue","flv_jscallback":"Callback JavaScript","html5_video_options":"Options de vid\u00e9o de HTML5","altsource1":"Source alternative 1","altsource2":"Source alternative 2","preload":"Pr\u00e9charger","poster":"Image","source":"Adresse web source"});
tinyMCE.addI18n("fr.wordpress", {"wp_adv_desc":"Afficher\/cacher les options avanc\u00e9es (Alt + Shift + Z)","wp_more_desc":"Ins\u00e9rer la balise \u00ab More \u00bb (Alt + Shift + T)","wp_page_desc":"Ins\u00e9rer un saut de page (Alt + Shift + P)","wp_help_desc":"Aide (Alt + Maj. + H)","wp_more_alt":"Lire la suite&hellip;","wp_page_alt":"Page suivante&hellip;","add_media":"Ajouter un m\u00e9dia","add_image":"Ajouter une image","add_video":"Ajouter une vid\u00e9o","add_audio":"Ajouter un son","editgallery":"Modifier la galerie","delgallery":"Supprimer la galerie","wp_fullscreen_desc":"Basculer en mode plein \u00e9cran (Alt + Shift + W)"});
tinyMCE.addI18n("fr.wpeditimage", {"edit_img":"Modifier l\u2019image","del_img":"Supprimer l\u2019image","adv_settings":"Options avanc\u00e9es","none":"Aucun","size":"Taille","thumbnail":"Miniature","medium":"Moyenne","full_size":"Taille originale","current_link":"Lien actuel","link_to_img":"Lier \u00e0 l&rsquo;image","link_help":"Saisissez une adresse web ou cliquez sur l&rsquo;un des pr\u00e9r\u00e9glages ci-dessus","adv_img_settings":"Options avanc\u00e9es de l&rsquo;image","source":"Adresse web source","width":"Largeur","height":"Hauteur","orig_size":"Taille originale","css":"Classe CSS","adv_link_settings":"Options avanc\u00e9es du lien","link_rel":"Attribut &laquo; Rel &raquo; du lien","s60":"60%","s70":"70%","s80":"80%","s90":"90%","s100":"100%","s110":"120%","s120":"120%","s130":"130%","img_title":"Titre","caption":"L\u00e9gende","alt":"Texte alternatif"});
</script>

	<script type="text/javascript">
		var wpActiveEditor;

		(function(){
			var init, ed, qt, first_init, DOM, el, i, mce = 1;

			if ( typeof(tinymce) == 'object' ) {
				DOM = tinymce.DOM;
				// mark wp_theme/ui.css as loaded
				DOM.files[tinymce.baseURI.getURI() + '/themes/advanced/skins/wp_theme/ui.css'] = true;

				DOM.events.add( DOM.select('.wp-editor-wrap'), 'mousedown', function(e){
					if ( this.id )
						wpActiveEditor = this.id.slice(3, -5);
				});

				for ( ed in tinyMCEPreInit.mceInit ) {
					if ( first_init ) {
						init = tinyMCEPreInit.mceInit[ed] = tinymce.extend( {}, first_init, tinyMCEPreInit.mceInit[ed] );
					} else {
						init = first_init = tinyMCEPreInit.mceInit[ed];
					}

					if ( mce )
						try { tinymce.init(init); } catch(e){}
				}
			} else {
				if ( tinyMCEPreInit.qtInit ) {
					for ( i in tinyMCEPreInit.qtInit ) {
						el = tinyMCEPreInit.qtInit[i].id;
						if ( el )
							document.getElementById('wp-'+el+'-wrap').onmousedown = function(){ wpActiveEditor = this.id.slice(3, -5); }
					}
				}
			}

			if ( typeof(QTags) == 'function' ) {
				for ( qt in tinyMCEPreInit.qtInit ) {
					try { quicktags( tinyMCEPreInit.qtInit[qt] ); } catch(e){}
				}
			}
		})();
		tinyMCEPreInit.load_ext("http://www.michaelgallego.fr/blog/wp-content/plugins/crayon-syntax-highlighter/util/tag-editor", "fr");
tinymce.PluginManager.load("crayon_tinymce", "http://www.michaelgallego.fr/blog/wp-content/plugins/crayon-syntax-highlighter/util/tag-editor/crayon_tinymce.js");

			(function(){var t=tinyMCEPreInit,sl=tinymce.ScriptLoader,ln=t.ref.language,th=t.ref.theme,pl=t.ref.plugins;sl.markDone(t.base+'/langs/'+ln+'.js');sl.markDone(t.base+'/themes/'+th+'/langs/'+ln+'.js');sl.markDone(t.base+'/themes/'+th+'/langs/'+ln+'_dlg.js');sl.markDone(t.base+'/themes/advanced/skins/wp_theme/ui.css');tinymce.each(pl.split(','),function(n){if(n&&n.charAt(0)!='-'){sl.markDone(t.base+'/plugins/'+n+'/langs/'+ln+'.js');sl.markDone(t.base+'/plugins/'+n+'/langs/'+ln+'_dlg.js');}});})();
			var ajaxurl = "/blog/wp-admin/admin-ajax.php";		</script>
			<div style="display:none;">
	<form id="wp-link" tabindex="-1">
	<input id="_ajax_linking_nonce" name="_ajax_linking_nonce" value="0a0d0fdaab" type="hidden">	<div id="link-selector">
		<div id="link-options">
			<p class="howto">Saisissez l’adresse de destination</p>
			<div>
				<label><span>Adresse web</span><input id="url-field" name="href" type="text"></label>
			</div>
			<div>
				<label><span>Titre</span><input id="link-title-field" name="linktitle" type="text"></label>
			</div>
			<div class="link-target">
				<label><input id="link-target-checkbox" type="checkbox"> Ouvrir le lien dans une nouvelle fenêtre/un nouvel onglet</label>
			</div>
		</div>
				<p class="howto toggle-arrow " id="internal-toggle">Ou alors, faites un lien vers l’un des contenus de votre site</p>
		<div id="search-panel" style="display:none">
			<div class="link-search-wrapper">
				<label>
					<span class="search-label">Recherche</span>
					<input id="search-field" class="link-search-field" autocomplete="off" type="search">
					<span class="spinner"></span>
				</label>
			</div>
			<div id="search-results" class="query-results">
				<ul></ul>
				<div class="river-waiting">
					<span class="spinner"></span>
				</div>
			</div>
			<div id="most-recent-results" class="query-results">
				<div class="query-notice"><em>Aucun mot n’a été donné pour cette recherche. Voici les recherches précédentes.</em></div>
				<ul></ul>
				<div class="river-waiting">
					<span class="spinner"></span>
				</div>
			</div>
		</div>
	</div>
	<div class="submitbox">
		<div id="wp-link-update">
			<input value="Ajouter un lien" class="button-primary" id="wp-link-submit" name="wp-link-submit" type="submit">
		</div>
		<div id="wp-link-cancel">
			<a class="submitdelete deletion" href="#">Annuler</a>
		</div>
	</div>
	</form>
	</div>
	
	<script src="replace_action_plugin_files/e-201315.js" type="text/javascript"></script>
	<script type="text/javascript">
	st_go({v:'ext',j:'1:2.2.2',blog:'41270599',post:'223',tz:'0'});
	var load_cmc = function(){linktracker_init(41270599,223,2);};
	if ( typeof addLoadEvent != 'undefined' ) addLoadEvent(load_cmc);
	else load_cmc();
	</script><img id="wpstats" src="replace_action_plugin_files/g.gif" alt="">




<div style="display:none;" id="wp_editbtns"><img title="Modifier l’image" id="wp_editimgbtn" src="replace_action_plugin_files/image.png" height="24" width="24"><img title="Supprimer l’image" id="wp_delimgbtn" src="replace_action_plugin_files/delete_002.png" height="24" width="24"></div><div style="display:none;" id="wp_gallerybtns"><img title="Modifier la galerie" id="wp_editgallery" src="replace_action_plugin_files/edit.png" height="24" width="24"><img title="Supprimer la galerie" id="wp_delgallery" src="replace_action_plugin_files/delete.png" height="24" width="24"></div><div style="display: none;" id="crayon-te">
    <div id="crayon-te-content" class="crayon-te">
        <div id="crayon-te-bar">
            <div id="crayon-te-bar-content">
                <div id="crayon-te-title">Title</div>
                <div id="crayon-te-controls">
                    <a id="crayon-te-ok" href="#">OK</a> <span class="crayon-te-seperator">|</span> <a id="crayon-te-cancel" href="#">Cancel</a>
                </div>
            </div>
        </div>

        <table id="crayon-te-table" class="describe">
            <tbody><tr class="crayon-tr-center">
                <th>Titre                </th>
                <td class="crayon-nowrap"><input data-orig-value="" id="crayon-title" name="crayon-title" class="crayon-setting crayon-setting-special" placeholder="Une brève description" type="text">                    <span id="crayon-te-sub-section"> <input data-orig-value="false" id="crayon-inline" name="crayon-inline" class="crayon-setting crayon-setting-special" type="checkbox">                        <span class="crayon-te-section">Inline </span>
			</span> <span id="crayon-te-sub-section"> <input data-orig-value="false" id="crayon-highlight" name="crayon-highlight" class="crayon-setting crayon-setting-special" type="checkbox">                        <span class="crayon-te-section">Don't Highlight				</span>
			</span></td>
            </tr>
            <tr class="crayon-tr-center">
                <th>Langage                </th>
                <td class="crayon-nowrap"><select id="crayon-lang" name="crayon-lang" class="crayon-setting crayon-setting-special" data-orig-value="default"><option value="abap">ABAP</option><option value="as">ActionScript</option><option value="amigados">AmigaDOS</option><option value="apache">Apache</option><option value="applescript">AppleScript</option><option value="arduino">Arduino</option><option value="asp">ASP</option><option value="asm">Assembly (x86)</option><option value="autoit">AutoIt</option><option value="c">C</option><option value="c#">C#</option><option value="c++">C++</option><option value="coffee">CoffeeScript</option><option value="css">CSS</option> selected='selected'<option value="default" selected="selected">Default *</option><option value="delphi">Delphi/Pascal</option><option value="diff">diff</option><option value="erlang">Erlang</option><option value="go">Go</option><option value="haskell">Haskell</option><option value="ilogic">Inventor iLogic</option><option value="java">Java</option><option value="js">JavaScript</option><option value="less">LESS</option><option value="lisp">Lisp</option><option value="lua">Lua</option><option value="reg">Microsoft Registry</option><option value="miva">MIVA Script</option><option value="monkey">Monkey</option><option value="batch">MS DOS</option><option value="objc">Objective-C</option><option value="perl">Perl</option><option value="pgsql">PgSQL</option><option value="php">PHP</option><option value="ps">PowerShell</option><option value="python">Python</option><option value="r">R</option><option value="ruby">Ruby</option><option value="sass">Sass</option><option value="scheme">Scheme</option><option value="sh">Shell</option><option value="tex">TeX</option><option value="tsql">Transact-SQL</option><option value="vim">Vim</option><option value="vb">Visual Basic</option><option value="xhtml">XHTML</option><option value="yaml">YAML</option></select>                    <span class="crayon-te-section">Line Range </span>
                    <input data-orig-value="" id="crayon-range" name="crayon-range" class="crayon-setting crayon-setting-special" placeholder="(e.g. 3-5 or 3)" type="text">                    <span class="crayon-te-section">Lignes mises en évidence </span>
                    <input data-orig-value="" id="crayon-mark" name="crayon-mark" class="crayon-setting crayon-setting-special" placeholder="(par exemple 1,2,3-5)" type="text">                </td>
            </tr>
            <tr class="crayon-tr-center" style="text-align: center;">
                <th>
                    <div>
                        Code                    </div>
                    <input id="crayon-te-clear" class="secondary-primary" value="Effacer" name="clear" type="button">
                </th>
                <td><textarea id="crayon-code" name="code" placeholder="Collez votre code ici, ou saisissez-le manuellement."></textarea>
                </td>
            </tr>
            <tr class="crayon-tr-center">
                <th id="crayon-url-th">URL                </th>
                <td><input data-orig-value="" id="crayon-url" name="crayon-url" class="crayon-setting crayon-setting-special" placeholder="Chemin d'accès local relatif ou URL absolue" type="text">                    <div id="crayon-te-url-info" class="crayon-te-info">
                        Si l'URL ne parvient pas à charger, le code 
ci-dessus sera affiché à la place. Si aucun code n'existe, une erreur 
s'affichera. Si un chemin relatif locale est donné, il sera ajouté à <span class="crayon-te-quote">http://www.michaelgallego.fr/blog/</span> - qui est défini dans <a href="http://www.michaelgallego.fr/blog/2012/10/06/how-to-replace-the-action-helper-in-zf-2-and-make-great-widgetized-content/options-general.php?page=crayon_settings" target="_blank">Crayon &gt; Paramètres &gt; Fichiers</a>.                    </div>
                </td>
            </tr>
            <tr>
                <td id="crayon-te-submit-wrapper" colspan="2" style="text-align: center;">    <input class="button-primary #crayon-te-ok" value="Ajouter" name="submit" type="button">
    </td>
            </tr>
            <!--		<tr>-->
            <!--			<td colspan="2"><div id="crayon-te-warning" class="updated crayon-te-info"></div></td>-->
            <!--		</tr>-->
            <tr>
                <td colspan="2">                    <hr>
                    <div>
                        <h2 class="crayon-te-heading">
                            Paramètres                        </h2>
                    </div>
                    <div id="crayon-te-settings-info" class="crayon-te-info">
                        Modifiez les paramètres suivants pour remplacer leurs valeurs globales. <span class="crayon-setting-changed">Seules les modifications (montrées en jaune) sont appliquées.</span><br>Les modifications futures des paramètres globaux sous <a href="http://www.michaelgallego.fr/blog/2012/10/06/how-to-replace-the-action-helper-in-zf-2-and-make-great-widgetized-content/options-general.php?page=crayon_settings" target="_blank">Crayon &gt; Paramètres</a> n'affecteront pas les paramètres écrasés.                    </div>
                </td>
            </tr>
            <tr><th>Thème</th><td><select data-orig-value="classic" id="crayon-theme" name="crayon_options[theme]" class="crayon-setting" crayon-preview="0"><option data-value="Ado" value="ado">Ado</option><option data-value="Arduino Ide" value="arduino-ide">Arduino Ide</option><option data-value="Classic" value="classic" selected="selected">Classic</option><option data-value="Eclipse" value="eclipse">Eclipse</option><option data-value="Epicgeeks" value="epicgeeks">Epicgeeks</option><option data-value="Familiar" value="familiar">Familiar</option><option data-value="Github" value="github">Github</option><option data-value="Idle" value="idle">Idle</option><option data-value="Neon" value="neon">Neon</option><option data-value="Secrets Of Rock" value="secrets-of-rock">Secrets Of Rock</option><option data-value="Solarized Dark" value="solarized-dark">Solarized Dark</option><option data-value="Solarized Light" value="solarized-light">Solarized Light</option><option data-value="Son Of Obsidian" value="son-of-obsidian">Son Of Obsidian</option><option data-value="Ssms2012" value="ssms2012">Ssms2012</option><option data-value="Terminal" value="terminal">Terminal</option><option data-value="Tomorrow" value="tomorrow">Tomorrow</option><option data-value="Tomorrow Night" value="tomorrow-night">Tomorrow Night</option><option data-value="Twilight" value="twilight">Twilight</option><option data-value="Vs2012" value="vs2012">Vs2012</option><option data-value="Vs2012 Black" value="vs2012-black">Vs2012 Black</option></select></td></tr><tr><th>Police</th><td><select data-orig-value="monaco" id="crayon-font" name="crayon_options[font]" class="crayon-setting" crayon-preview="1"><option value="arial">Arial</option><option value="consolas">Consolas</option><option value="courier-new">Courier New</option><option value="droid-sans-mono">Droid Sans Mono</option><option value="inconsolata">Inconsolata</option><option value="liberation-mono">Liberation Mono</option><option value="monaco" selected="selected">Monaco</option><option value="monospace">Monospace</option><option value="tahoma">Tahoma</option><option value="times">Times</option><option value="ubuntu-mono">Ubuntu Mono</option><option value="verdana">Verdana</option></select><span class="crayon-span-5"></span><a href="http://bit.ly/Yr2Xv6" target="_blank">Add More</a><span class="crayon-span-10"></span><input data-orig-value="true" id="crayon-font-size-enable" name="crayon_options[font-size-enable]" class="crayon-setting" value="1" checked="checked" crayon-preview="1" type="checkbox"> <label for="crayon-font-size-enable">Taille du texte personnalisée </label><input data-orig-value="12" id="crayon-font-size" name="crayon_options[font-size]" class="crayon-setting" size="2" value="12" style="margin-left: 0px;" crayon-preview="1" type="text"><span class="crayon-span-margin">Pixels,&nbsp;&nbsp;Line Height </span><input data-orig-value="15" id="crayon-line-height" name="crayon_options[line-height]" class="crayon-setting" size="2" value="15" style="margin-left: 0px;" crayon-preview="1" type="text"><span class="crayon-span-margin">Pixels</span><br></td></tr><tr><th>Dimensions</th><td><div id="crayon-section-metrics" class="crayon-hide-inline"><input data-orig-value="false" id="crayon-height-set" name="crayon_options[height-set]" class="crayon-setting" value="1" crayon-preview="1" type="checkbox"> <label for="crayon-height-set"><span class="crayon-span-50">Hauteur </span></label><select data-orig-value="0" id="crayon-height-mode" name="crayon_options[height-mode]" class="crayon-setting" crayon-preview="1"><option value="0" selected="selected">Max</option><option value="1">Min</option><option value="2">Statique</option></select> <input data-orig-value="500" id="crayon-height" name="crayon_options[height]" class="crayon-setting" size="8" value="500" style="margin-left: 0px;" crayon-preview="1" type="text"> <select data-orig-value="0" id="crayon-height-unit" name="crayon_options[height-unit]" class="crayon-setting" crayon-preview="1"><option value="0" selected="selected">Pixels</option><option value="1">Pourcent</option></select><br><input data-orig-value="false" id="crayon-width-set" name="crayon_options[width-set]" class="crayon-setting" value="1" crayon-preview="1" type="checkbox"> <label for="crayon-width-set"><span class="crayon-span-50">Largeur </span></label><select data-orig-value="0" id="crayon-width-mode" name="crayon_options[width-mode]" class="crayon-setting" crayon-preview="1"><option value="0" selected="selected">Max</option><option value="1">Min</option><option value="2">Statique</option></select> <input data-orig-value="500" id="crayon-width" name="crayon_options[width]" class="crayon-setting" size="8" value="500" style="margin-left: 0px;" crayon-preview="1" type="text"> <select data-orig-value="0" id="crayon-width-unit" name="crayon_options[width-unit]" class="crayon-setting" crayon-preview="1"><option value="0" selected="selected">Pixels</option><option value="1">Pourcent</option></select><br><input data-orig-value="true" id="crayon-top-set" name="crayon_options[top-set]" class="crayon-setting" value="1" checked="checked" crayon-preview="0" type="checkbox"> <label for="crayon-top-set"><span class="crayon-span-110">Marge supérieure</span></label> <input data-orig-value="12" id="crayon-top-margin" name="crayon_options[top-margin]" class="crayon-setting" size="8" value="12" style="margin-left: 0px;" crayon-preview="0" type="text"><span class="crayon-span-margin">Pixels</span><br><input data-orig-value="true" id="crayon-bottom-set" name="crayon_options[bottom-set]" class="crayon-setting" value="1" checked="checked" crayon-preview="0" type="checkbox"> <label for="crayon-bottom-set"><span class="crayon-span-110">Marge inférieure</span></label> <input data-orig-value="12" id="crayon-bottom-margin" name="crayon_options[bottom-margin]" class="crayon-setting" size="8" value="12" style="margin-left: 0px;" crayon-preview="0" type="text"><span class="crayon-span-margin">Pixels</span><br><input data-orig-value="false" id="crayon-left-set" name="crayon_options[left-set]" class="crayon-setting" value="1" crayon-preview="1" type="checkbox"> <label for="crayon-left-set"><span class="crayon-span-110">Marge gauche</span></label> <input data-orig-value="12" id="crayon-left-margin" name="crayon_options[left-margin]" class="crayon-setting" size="8" value="12" style="margin-left: 0px;" crayon-preview="0" type="text"><span class="crayon-span-margin">Pixels</span><br><input data-orig-value="false" id="crayon-right-set" name="crayon_options[right-set]" class="crayon-setting" value="1" crayon-preview="1" type="checkbox"> <label for="crayon-right-set"><span class="crayon-span-110">Marge droite</span></label> <input data-orig-value="12" id="crayon-right-margin" name="crayon_options[right-margin]" class="crayon-setting" size="8" value="12" style="margin-left: 0px;" crayon-preview="0" type="text"><span class="crayon-span-margin">Pixels</span><br><span class="crayon-span" style="min-width: 135px;">Alignement horizontal </span><select data-orig-value="0" id="crayon-h-align" name="crayon_options[h-align]" class="crayon-setting" crayon-preview="1"><option value="0" selected="selected">Aucun</option><option value="1">Gauche</option><option value="2">Centre</option><option value="3">Droite</option></select><br><div id="crayon-subsection-float"><input data-orig-value="false" id="crayon-float-enable" name="crayon_options[float-enable]" class="crayon-setting" value="1" crayon-preview="0" type="checkbox"> <label for="crayon-float-enable">Autoriser les éléments flottants à encercler Crayon</label></div><span class="crayon-span-100">Marge inline </span><input data-orig-value="5" id="crayon-inline-margin" name="crayon_options[inline-margin]" class="crayon-setting" size="2" value="5" style="margin-left: 0px;" crayon-preview="1" type="text"><span class="crayon-span-margin">Pixels</span></div></td></tr><tr><th>Barre d'outils</th><td><div id="crayon-section-toolbar" class="crayon-hide-inline"><span>Afficher la barre d'outils </span><select data-orig-value="0" id="crayon-toolbar" name="crayon_options[toolbar]" class="crayon-setting" crayon-preview="1"><option value="0" selected="selected">Au survol</option><option value="1">Toujours</option><option value="2">Jamais</option></select><br><div id="crayon-subsection-toolbar"><input data-orig-value="true" id="crayon-toolbar-overlay" name="crayon_options[toolbar-overlay]" class="crayon-setting" value="1" checked="checked" crayon-preview="1" type="checkbox"> <label for="crayon-toolbar-overlay">Superposition de la barre d'outils sur le code plutôt que de le pousser vers le bas si possible</label><br><input data-orig-value="true" id="crayon-toolbar-hide" name="crayon_options[toolbar-hide]" class="crayon-setting" value="1" checked="checked" crayon-preview="1" type="checkbox"> <label for="crayon-toolbar-hide">Basculer la barre d'outils sur simple clic quand il est superposé</label><br><input data-orig-value="true" id="crayon-toolbar-delay" name="crayon_options[toolbar-delay]" class="crayon-setting" value="1" checked="checked" crayon-preview="1" type="checkbox"> <label for="crayon-toolbar-delay">Retarder la disparition de la barre d'outils lors de la sortie de la souris</label><br></div><input data-orig-value="true" id="crayon-show-title" name="crayon_options[show-title]" class="crayon-setting" value="1" checked="checked" crayon-preview="1" type="checkbox"> <label for="crayon-show-title">Afficher le titre lorsqu'il est fourni</label><br><span>Affichage du langage </span><select data-orig-value="0" id="crayon-show-lang" name="crayon_options[show-lang]" class="crayon-setting" crayon-preview="1"><option value="0" selected="selected">Si détecté</option><option value="1">Toujours</option><option value="2">Jamais</option></select><br></div></td></tr><tr><th>Lignes</th><td><div id="crayon-section-lines" class="crayon-hide-inline"><input data-orig-value="true" id="crayon-striped" name="crayon_options[striped]" class="crayon-setting" value="1" checked="checked" crayon-preview="1" type="checkbox"> <label for="crayon-striped">Lignes colorées une ligne sur deux</label><br><input data-orig-value="true" id="crayon-marking" name="crayon_options[marking]" class="crayon-setting" value="1" checked="checked" crayon-preview="1" type="checkbox"> <label for="crayon-marking">Permettre la mise en évidence de lignes importantes</label><br><input data-orig-value="true" id="crayon-ranges" name="crayon_options[ranges]" class="crayon-setting" value="1" checked="checked" crayon-preview="1" type="checkbox"> <label for="crayon-ranges">Enable line ranges for showing only parts of code</label><br><input data-orig-value="true" id="crayon-nums" name="crayon_options[nums]" class="crayon-setting" value="1" checked="checked" crayon-preview="1" type="checkbox"> <label for="crayon-nums">Afficher les numéros de ligne par défaut</label><br><input data-orig-value="true" id="crayon-nums-toggle" name="crayon_options[nums-toggle]" class="crayon-setting" value="1" checked="checked" crayon-preview="1" type="checkbox"> <label for="crayon-nums-toggle">Permettre de basculer l'affichage des numéros de lignes</label><br><input data-orig-value="false" id="crayon-wrap" name="crayon_options[wrap]" class="crayon-setting" value="1" crayon-preview="1" type="checkbox"> <label for="crayon-wrap">Wrap lines by default</label><br><input data-orig-value="true" id="crayon-wrap-toggle" name="crayon_options[wrap-toggle]" class="crayon-setting" value="1" checked="checked" crayon-preview="1" type="checkbox"> <label for="crayon-wrap-toggle">Enable line wrap toggling</label><br><span>Numéroter les lignes à partir de </span><input data-orig-value="1" id="crayon-start-line" name="crayon_options[start-line]" class="crayon-setting" size="2" value="1" style="margin-left: 0px;" crayon-preview="1" type="text"><br></div></td></tr><tr><th>Code</th><td><div id="crayon-section-code-interaction" class="crayon-hide-inline-only"><input data-orig-value="true" id="crayon-plain" name="crayon_options[plain]" class="crayon-setting" value="1" checked="checked" crayon-preview="1" type="checkbox"> <label for="crayon-plain">Permettre la vue et l'affichage du code brut </label><select data-orig-value="0" id="crayon-show-plain" name="crayon_options[show-plain]" class="crayon-setting" crayon-preview="1"><option value="0" selected="selected">au double-clic</option><option value="1">au clic</option><option value="2">Au survol</option><option value="3">Désactiver les événements souris</option></select><br><span id="crayon-subsection-copy-check"><input data-orig-value="true" id="crayon-plain-toggle" name="crayon_options[plain-toggle]" class="crayon-setting" value="1" checked="checked" crayon-preview="1" type="checkbox"> <label for="crayon-plain-toggle">Permettre de basculer vers le code brut</label><br><input data-orig-value="false" id="crayon-show-plain-default" name="crayon_options[show-plain-default]" class="crayon-setting" value="1" crayon-preview="1" type="checkbox"> <label for="crayon-show-plain-default">Montrer le code brut par défaut</label><br><input data-orig-value="true" id="crayon-copy" name="crayon_options[copy]" class="crayon-setting" value="1" checked="checked" crayon-preview="1" type="checkbox"> <label for="crayon-copy">Permettre le copier/coller du code</label><br></span><input data-orig-value="true" id="crayon-popup" name="crayon_options[popup]" class="crayon-setting" value="1" checked="checked" crayon-preview="1" type="checkbox"> <label for="crayon-popup">Permettre l'ouverture du code dans une nouvelle fenêtre</label><br><input data-orig-value="false" id="crayon-scroll" name="crayon_options[scroll]" class="crayon-setting" value="1" crayon-preview="1" type="checkbox"> <label for="crayon-scroll">Toujours afficher les barres de défilement</label><br><input data-orig-value="false" id="crayon-minimize" name="crayon_options[minimize]" class="crayon-setting" value="1" crayon-preview="1" type="checkbox"> <label for="crayon-minimize">Minimize code <a href="http://bit.ly/W4YNCV" target="_blank" class="crayon-question">?</a></label><br><input data-orig-value="false" id="crayon-expand" name="crayon_options[expand]" class="crayon-setting" value="1" crayon-preview="1" type="checkbox"> <label for="crayon-expand">Expand code beyond page borders on mouseover</label><br><input data-orig-value="true" id="crayon-expand-toggle" name="crayon_options[expand-toggle]" class="crayon-setting" value="1" checked="checked" crayon-preview="1" type="checkbox"> <label for="crayon-expand-toggle">Enable code expanding toggling when possible</label><br></div><input data-orig-value="true" id="crayon-decode-attributes" name="crayon_options[decode-attributes]" class="crayon-setting" value="1" checked="checked" crayon-preview="1" type="checkbox"> <label for="crayon-decode-attributes">Décoder les entités HTML dans les attributs</label><br><div class="crayon-hide-inline-only"><input data-orig-value="true" id="crayon-trim-whitespace" name="crayon_options[trim-whitespace]" class="crayon-setting" value="1" checked="checked" crayon-preview="1" type="checkbox"> <label for="crayon-trim-whitespace">Supprimer les espaces entourant le contenu des shortcode</label><br></div><input data-orig-value="true" id="crayon-mixed" name="crayon_options[mixed]" class="crayon-setting" value="1" checked="checked" crayon-preview="1" type="checkbox"> <label for="crayon-mixed">Autoriser la coloration de codes mixtes délimiteurs et tags. <a href="http://bit.ly/ukwts2" target="_blank" class="crayon-question">?</a></label><br><div class="crayon-hide-inline-only"><input data-orig-value="true" id="crayon-show_mixed" name="crayon_options[show_mixed]" class="crayon-setting" value="1" checked="checked" crayon-preview="1" type="checkbox"> <label for="crayon-show_mixed">Afficher l'icône langages mixtes (+)</label><br></div><span>Taille des tabulations en espaces: </span><input data-orig-value="4" id="crayon-tab-size" name="crayon_options[tab-size]" class="crayon-setting" size="2" value="4" style="margin-left: 0px;" crayon-preview="1" type="text"><br><span>Blank lines before code: </span><input data-orig-value="0" id="crayon-whitespace-before" name="crayon_options[whitespace-before]" class="crayon-setting" size="2" value="0" style="margin-left: 0px;" crayon-preview="1" type="text"><br><span>Blank lines after code: </span><input data-orig-value="0" id="crayon-whitespace-after" name="crayon_options[whitespace-after]" class="crayon-setting" size="2" value="0" style="margin-left: 0px;" crayon-preview="1" type="text"><br></td></tr>        </tbody></table>
    </div>

    </div></body></html>
<!-- Dynamic page generated in 4.088 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2013-04-10 08:56:15 -->
<!-- super cache -->